Android 退出多个Activity | 退出程序
2014-04-18 11:21
260 查看
这几天升级我的MyRSS到2.0,遇到一个问题:如何在任意一个Activity中直接退出程序呢?
网上搜到的几种方法都不能解决问题,最后用下面这种方法算是比较满意解决了:
步骤:
1、在程序的第一个Activity中加入下列代码:
[java] view
plaincopy
@Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
if ((Intent.FLAG_ACTIVITY_CLEAR_TOP & intent.getFlags()) != 0) {
finish();
}
}
2、在AndroidManifest.xml中伟第一个Activity添加以下设置:
android:launchMode="singleTop"
如:
[html] view
plaincopy
<activity android:name=".RSSMainActivity"
android:label="@string/app_name"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
3、在其他Activity中响应退出事件的代码加入以下代码:
[java] view
plaincopy
Intent intent = new Intent();
intent.setClass(this, RSSMainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
上面的代码根据你实际的Activity进行修改!
总结:其实就是利用activity的堆栈,跳到第一activity再退出程序~~简单明了!
上面所描述的方法其实是存在问题的,经过测试,onNewIntent有时候并不会被掉用到,有关onNewIntent可以参考另一篇文章:
http://blog.csdn.net/linshutao/article/details/6820759,
总之,为了保险,需要在onCreate里也做相应的处理!
[java] view
plaincopy
if ((Intent.FLAG_ACTIVITY_CLEAR_TOP & intent.getFlags()) != 0) {
finish();
网上搜到的几种方法都不能解决问题,最后用下面这种方法算是比较满意解决了:
步骤:
1、在程序的第一个Activity中加入下列代码:
[java] view
plaincopy
@Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
if ((Intent.FLAG_ACTIVITY_CLEAR_TOP & intent.getFlags()) != 0) {
finish();
}
}
2、在AndroidManifest.xml中伟第一个Activity添加以下设置:
android:launchMode="singleTop"
如:
[html] view
plaincopy
<activity android:name=".RSSMainActivity"
android:label="@string/app_name"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
3、在其他Activity中响应退出事件的代码加入以下代码:
[java] view
plaincopy
Intent intent = new Intent();
intent.setClass(this, RSSMainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
上面的代码根据你实际的Activity进行修改!
总结:其实就是利用activity的堆栈,跳到第一activity再退出程序~~简单明了!
上面所描述的方法其实是存在问题的,经过测试,onNewIntent有时候并不会被掉用到,有关onNewIntent可以参考另一篇文章:
http://blog.csdn.net/linshutao/article/details/6820759,
总之,为了保险,需要在onCreate里也做相应的处理!
[java] view
plaincopy
if ((Intent.FLAG_ACTIVITY_CLEAR_TOP & intent.getFlags()) != 0) {
finish();
相关文章推荐
- Android应用开发多个activity完全退出程序方法
- android完全退出程序(android退出有多个activity的应用)
- Android完全退出多个activity程序设计
- 【RichieZhu】Android多activity退出整个程序的一个实现
- android程序退出当前activity的方法
- Android完全结束Activity并退出程序
- android 在一个Activity中结束另一个Activity的方法(可以完全退出程序)
- android多activity退出整个程序的一个实现
- Android完全退出程序退出所有Activity
- 退出android程序清楚所有activity
- Android完全退出多个activity程序
- android程序退出关闭多个activity
- Android开发学习笔记,修改Activity名称后,导致程序打开该Activity时异常退出
- Android 应用程序多Activity跳转之后退出整个程序
- Android结束Activity退出程序的一种有效方法
- 退出Android程序时清除所有activity的实现方法
- android 采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序(多activity)
- android多activity退出整个程序的一个实现
- Android工作学习第5天之Activity的完全退出程序
- android要把用到的activity写在AndroidManifest.xml中,否则程序异常退出