之前学习到多个activity退出总是很麻烦,其实通过网上看到一个思想比较好的退出方式是创建一个Activity的基类,其他的Acticity都继承这个基类.退出使用广播,在需要退出的地方发送一个广播.在基类中接收这个广播.然后finish(),这样就可以了.不用每个Activity都去写代码.创建基类的好处还有很多.基类+广播可以做很多事情。直接上代码了:
基类BaseActivity:
public class BaseActivity extends Activity {
public Activity aty;
public ExitAllBroadCast exitAllBroadCast;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
aty = BaseActivity.this;
exitAllBroadCast = new ExitAllBroadCast();
}
/* (non-Javadoc)
* @see android.app.Activity#onStart()
*/
@Override
protected void onStart() {
IntentFilter filter = new IntentFilter();// 创建IntentFilter对象
filter.addAction("com.kg.exit.broadcast");
registerReceiver(exitAllBroadCast, filter);// 注册Broadcast Receiver
super.onStart();
}
class ExitAllBroadCast extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
aty.finish();
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver(exitAllBroadCast);
}
}
子类Activity01
public class Activity01 extends BaseActivity {
private TextView tx;
private Button btn;
private Context ctx;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ctx = this;
tx = (TextView) findViewById(R.id.tx);
tx.setText("activity01");
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(ctx, Activity02.class);
startActivity(intent);
}
});
}
}
子类Activity02:
public class Activity02 extends BaseActivity {
public static final int MENU_EXITAPPLICATION = Menu.FIRST;
private TextView tx;
private Button btn;
private Context ctx;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ctx = this;
tx = (TextView) findViewById(R.id.tx);
tx.setText("activity02");
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(ctx, Activity01.class);
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_EXITAPPLICATION, 0,"退出程序");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == MENU_EXITAPPLICATION){
Intent myIntent = new Intent();// 创建Intent对象
myIntent.setAction("com.kg.exit.broadcast");
sendBroadcast(myIntent);// 发送广播
}
return super.onOptionsItemSelected(item);
}
}
源代码地址:
http://download.csdn.net/detail/kingsonl/4309569
分享到:
相关推荐
1、新建一个 ExitApplication 类继承Application 2、在你要退出的activity Oncreate方法中加入...3、在你当前要完全退出程序的activity中覆盖onKeyDown方法. 4、当你点击手机的返回按钮时将提示:是否退出系统。
Android代码一键退出客户端 多个Activity推出的时候用到的 原理是把所有打开的activity都放在一个list里面 当点击退出的时候便利list 然后一个一个的结束掉。方法简单易懂,一看就会
当程序有多个Activity时,采用广播机制完全退出程序
android点击按钮实现多个Activity滑动切换 切换方式从右边进入,左边退出
从注册流程分析如何安全退出多个Activity多种方式.rar
点击通知启动多个Activity.从启动Activity 返回不会退出app,而是返回到App 的MainActivity 或者其他Activity
此工程为一键退出多个Activity简单示例,所有的Activity同时集成一个ParentActivity,在ParentActivity添加一个菜单触发事件来控制关闭activity,每打开一个Activity就记录下来并添加到一个list中,关闭的时候同时...
如何通过返回键,一次退出多个activity,直接退出应用程序。简单的思路就是:新建一个类,继承Application, 将所有创建的activivty 放到一个list中,在类中添加两个方法,一个addActivity(),用于添加activity到 list...
Android开发基础,讲述了Android开发环境的搭建、Android常用工具的使用和第一个Android应用程序的开发 第二篇 技术篇 第3章 Android中的资源访问 Android 中的资源访问,讲述了如何定义和访问Android中的外部...
本文实例讲述了Android一次性退出多个Activity的方法。分享给大家供大家参考,具体如下: 因为android的API中没有提供一次性退出的接口所以想要在多activity的程序里面一次性退出的话就要费点功夫了。我是在一个单例...
关于完全退出Android程序,网上这方面的帖子很多,方法也很多。记得当时自己写的第一个比较完整的项目的时候就遇上了这个问题,由于对Activity的生命周期了解不够,又使用了TabActivity使得层次关系比较复杂,在程序...
这是一个很多很多人都 会遇到的问题,我也试过了很多方法,都不怎么好用。 比如: 代码如下: System.exit(0); 不行。 还有什么跳转到第一个activity,同时把栈顶的activity全部清除,最后再finish();还是不行。。...
此demo提供从注册开始,分析如何安全退出多个Activity 多种方式
我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源。有时跳转的...
主要介绍了Android 中 退出多个activity的经典方法 的相关资料,本文给大家分享两种方法,在这小编给大家推荐使用第一种方法,对此文感兴趣的朋友可以参考下
Android高级应用源码-从注册流程 分析如何安全退出多个Activity 多种方式.zip
在开发过程中,我们常常需要一个退出功能,来退出该应用的所有Activity,本篇文章主要介绍了Android 退出多Activity的application的方式,有兴趣的可以了解一下。