谷歌百度一下,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 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里添加myExit()方法,然后在要进行退出程序操作的地方调用myExit()方法就行。
ublic 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推出的时候用到的 原理是把所有打开的activity都放在一个list里面 当点击退出的时候便利list 然后一个一个的结束掉。方法简单易懂,一看就会
2、在你要退出的activity Oncreate方法中加入ExitApplication.getInstance().addActivity(this);作用是添加到你的activity历史中。 3、在你当前要完全退出程序的activity中覆盖onKeyDown方法. 4、当你点击手机的返回...
从注册流程分析如何安全退出多个Activity多种方式.rar
此工程为一键退出多个Activity简单示例,所有的Activity同时集成一个ParentActivity,在ParentActivity添加一个菜单触发事件来控制关闭activity,每打开一个Activity就记录下来并添加到一个list中,关闭的时候同时...
Android应用开发多个activity完全退出程序方法,亲测可用
service在后台下载,与前台多个activity通信,结果发现有一个坑,找到原因后,跟大家一起分享。
点击通知启动多个Activity.从启动Activity 返回不会退出app,而是返回到App 的MainActivity 或者其他Activity
android点击按钮实现多个Activity滑动切换 切换方式从右边进入,左边退出
此demo提供从注册开始,分析如何安全退出多个Activity 多种方式
本文实例讲述了Android一次性退出多个Activity的方法。分享给大家供大家参考,具体如下: 因为android的API中没有提供一次性退出的接口所以想要在多activity的程序里面一次性退出的话就要费点功夫了。我是在一个单例...
Android 实现了可以滑动左侧边缘退出Activity的功能
一个viewpager中嵌套多个activity,每当滑动到当前activity时,加载当前activity中的数据,实现异步加载
使用ViewModel解决多个Activity数据共享问题(Kotlin版)
Android Activity 侧滑退出库
android使用ViewPager实现底部菜单栏和左右滑动效果,加载多个Activity
android中以广播的形式销毁栈中的activity
在android 中,默认的返回键是退回到上一个保留的activity处。如何通过返回键,一次退出多个activity,直接退出应用程序。简单的思路就是:新建一个类,继承Application, 将所有创建的activivty 放到一个list中,在...
android开发 广播实现Activity之间数据的交互,简单易懂的demo
【Android开发学习20】多个Activity间的交互之Intent。一个很基础的程序,仅仅实现一个按钮,跳转到另一个Activity去。