Android中使用广播机制退出多个Activity
2013-05-07 11:30
531 查看
原文链接:http://ldl8818.iteye.com/blog/1531021。
谷歌百度一下,Android中退出多个Activity的方法,大家讨论的很多。
在实习的时候,看到公司的项目退出多个Activity,是采用LinkedList方法,毕业设计的时候,也参照了那种方法。完成之时,无意在网上看到的可以使用广播机制退出Activity。看了一部分人的博客、文章等教程,发现也是摘抄的“很随便”,说的不详细,或不能实现。
看了他们的意思,写了demo,大家看看吧。主要代码如下:(不方便看的直接下整个工程)
为了代码的简洁性,抽取出一个基类BaseActivity(自定义的,当然,你也可以不写这个基类,只要在你项目的每个Activity里实现其中的代码即可),让你代码中要关闭的Activity都继承这个BaseActivity。
在你要关闭的Activity里添加myExit()方法,然后在要进行退出程序操作的地方调用myExit()方法就行。
谷歌百度一下,Android中退出多个Activity的方法,大家讨论的很多。
在实习的时候,看到公司的项目退出多个Activity,是采用LinkedList方法,毕业设计的时候,也参照了那种方法。完成之时,无意在网上看到的可以使用广播机制退出Activity。看了一部分人的博客、文章等教程,发现也是摘抄的“很随便”,说的不详细,或不能实现。
看了他们的意思,写了demo,大家看看吧。主要代码如下:(不方便看的直接下整个工程)
为了代码的简洁性,抽取出一个基类BaseActivity(自定义的,当然,你也可以不写这个基类,只要在你项目的每个Activity里实现其中的代码即可),让你代码中要关闭的Activity都继承这个BaseActivity。
public class BaseActivity extends Activity { protected BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { finish(); } }; @Override public void onCreate() { 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里添加myExit()方法,然后在要进行退出程序操作的地方调用myExit()方法就行。
public class Activity1 extends BaseActivity { private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.a1); btn1 = (Button)findViewById(R.id.btn1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(Activity1.this, Activity2.class); startActivity(i); } }); } /** * 捕获手机物理菜单键 */ 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(); } }
相关文章推荐
- Android中使用广播机制退出多个Activity
- Android中使用广播机制退出多个Activity
- Android中使用广播机制退出多个Activity
- Android中使用广播机制 退出多个Activity
- Android中使用广播机制退出多个Activity
- android2.2完全退出程序, 使用广播机制
- android2.2使用广播机制进行完全退出
- 使用广播退出多个activity
- Android 2.2完全退出程序, 使用广播机制
- android完全退出程序, 使用广播机制。与众不同,仔细看
- Android2.2使用广播机制完全退出程序
- android使用广播退出应用程序
- Android退出程序(二)——利用广播机制
- Android广播、Service、Activity综合使用
- android-Activity路由机制及子页面退出软件方法
- Android使用基类安全退出已调用多个Activity的Application
- Android完全退出多个activity程序
- Android 如何安全的退出多个Activity
- Android广播、Service、Activity综合使用
- Android退出程序(二)——利用广播机制