如何打开多个界面之后按返回键直接退出应用
2016-08-08 17:16
465 查看
如何打开多个界面之后按返回键直接退出应用
1、自定义广播接收者
每个新开的界面继承下面的父类主活动,并在活动中实现以下代码
public class Activity1 extends BaseActivity{ //这里还有重写oncreate()方法 /** * 捕获手机物理菜单键 */ private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){//&& event.getAction() == KeyEvent.ACTION_DOWN if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { myExit(); } return true; } return super.onKeyDown(keyCode, event); } protected void myExit() { Intent intent = new Intent(); intent.setAction("ExitApp"); this.sendBroadcast(intent); super.finish(); } }
定义父类主活动
在这里注册一个广播接收者,一旦接收到自定义的广播就在onReceive()方法里finish()活动,这样所有继承这个父类的Activity都会finish()掉的。public class BaseActivity extends Activity { protected BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { finish(); } }; @Override public void onResume() { super.onResume(); // 在当前的activity中注册广播 IntentFilter filter = new IntentFilter(); filter.addAction("ExitApp"); this.registerReceiver(this.broadcastReceiver, filter); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); this.unregisterReceiver(this.broadcastReceiver); }
}
完成上面两个步骤之后,每个继承了父类主活动的Activity每次按返回键都会直接退出APP
2、定义一个收集Activity的类,在里面定义一个静态方法返回一个集合,每次创建新的Activity都添加到集合中,在多次打开多个活动后按返回键重写返回键的方法,遍历集合,finish()掉
for(Activity activity: lists) { activity.finish(); }
3、递归退出
在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。4、抛异常强制退出:
该方法通过抛异常,使程序Force Close。验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。
//安全结束进程 android.os.Process.killProcess(android.os.Process.myPid());
相关文章推荐
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- Android App首次安装完成后在安装界面直接打开应用,再按home键返回桌面,从桌面图标重新进入app,返回不到之前的界面问题
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- android解锁界面,插上USB弹出打开USB存储设置界面,按HOME键/返回键直接回到launcher,而非滑动锁屏界面
- android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)
- 如何让vi每次打开文件时直接跳到上次退出时的光标位置?
- 在android中如何实现在应用首页按两次返回键(back)退出应用
- android应用面试宝典;footerview自动添加在下翻页的最后一项;主界面返回键退出提示
- Android 如何从应用返回待机界面(HOME)
- android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)
- mac或linux中打开.bashrc,编辑完之后如何保存退出
- android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)
- android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)
- Android如何实现点击一次返回键返回桌面而不是退出应用?
- 针对一些在android 应用界面使用Ctrl + C组合键,直接退出应用的解决方案