Android随时随地退出应用程序

来源:互联网 发布:lovelive舞蹈教学 知乎 编辑:程序博客网 时间:2024/06/16 09:45
package com.itheima74.baseactivity;import android.os.Bundle;import android.os.Process;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.view.Menu;import android.view.MenuItem;import java.util.ArrayList;/** * 随时随地退出程序解决思路: * 1.按home键挂起程序,再按home键清除进程 * 2.以下方法: * BaseActivity是父类,MainActivity,SecondActivity,ThirdActivity是子类, * 子类继承了父类所有属性和方法. * 使用Memu菜单,点击菜单Exit,退出程序 * Created by My on 2017/2/28. */public class BaseActivity extends AppCompatActivity {    protected static ArrayList<BaseActivity> mActivityList = new ArrayList<>();    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // 每一个子类创建时都会调用父类onCreate()方法,将自己添加到全局mActivityList中        mActivityList.add(this);    }    // 每一个子类都会创建一个选项菜单,以便用户退出程序    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    // 用户选择Exit后集合中所有Activity.finish掉,从而退出程序    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if (item.getItemId() == R.id.item_exit) {            for (BaseActivity baseActivity : mActivityList) {                baseActivity.finish();            }            // 杀死当前程序进程            Process.killProcess(Process.myPid());        }        return super.onOptionsItemSelected(item);    }    @Override    protected void onDestroy() {        super.onDestroy();        // 每退出一个Activity,都要从集合中移除        mActivityList.remove(this);    }}
package com.itheima74.baseactivity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;public class MainActivity extends BaseActivity {    private static final String TAG = "MainActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Log.e(TAG, "MainActivity: "+ mActivityList.size());    }    // 点击按钮,启动SecondActivity    public void click(View view) {        startActivity(new Intent(this, SecondActivity.class));    }}
package com.itheima74.baseactivity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;public class SecondActivity extends BaseActivity {    private static final String TAG = "SecondActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);        Log.e(TAG, "SecondActivity: " + mActivityList.size());    }    // 点击按钮,启动ThirdActivity    public void click(View view) {        startActivity(new Intent(this, ThirdActivity.class));    }}
package com.itheima74.baseactivity;import android.os.Bundle;import android.util.Log;public class ThirdActivity extends BaseActivity {    private static final String TAG = "ThirdActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_third);        Log.e(TAG, "ThirdActivity: " + mActivityList.size());    }}


1 0
原创粉丝点击