杀死活动的所有实例

时间:2014-05-01 10:49:06

标签: android android-activity android-notifications

我在我的应用中设置了通知,我在测试时注意到,在点击新通知后(在这种情况下通知会加载博客详细信息页面),我有很多博客详细信息的实例活动正在运行(按下它会显示以前加载的博客的每个活动)。

是否可以在我的Receiver类中查看是否有ActivityBlog的任何实例已经在运行,并且是否所有.finish()都是如此,那么只有一次实例正在运行?

我找到了this,但我无法通过这种方式解决这个问题。

3 个答案:

答案 0 :(得分:5)

您应该学习活动启动模式 http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

在清单文件中的元素中使用 android:launchMode =“singleTop”。 如果活动实例已经启动,您将在 onNewIntent()中获得回调。您的活动堆栈将自动更新,不需要任何消耗时间和资源的活动。 我认为这是推荐的方法。

答案 1 :(得分:4)

    Intent z = new Intent(Projects_Accel.this,MainActivity.class);
    z.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | 
    Intent.FLAG_ACTIVITY_CLEAR_TASK |
    Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(z);

使用它来杀死所有活动

答案 2 :(得分:0)

这样做

Intent intent = new Intent(this, ActivityBlog.class);
ComponentName cn = intent.getComponent();
Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
activity.startActivity(mainIntent);

注意:

您需要将 android-support.jar 放入 libs 文件夹