如何完成()其他活动(如果他们是开放的)

时间:2011-11-08 15:52:07

标签: android android-intent

在我的申请中,我有2项活动(A和B)和1项服务。

每个活动都可以调用另一个活动完成。

Intent i = new Intent(this, ActivityB.class);
finish();
startActivity(i);

应用程序可以创建状态栏图标,单击状态栏,使用标记

打开意图打开活动A.
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

此外,我有一个退出按钮,可以杀死活动和服务。

我的问题是如果我打开活动B并且用户点击状态栏图标,因为用户现在看到活动A,但如果他点击退出按钮,应用程序关闭活动A和服务但显示地下活动B.我该如何解决关闭活动B的问题

修改

我使用SharedPreferences值解决,我在应用程序启动时将其设置为false,并在退出按钮单击时设置为true。在onResume()中,我检查值并完成活动,如果它是真的。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:将状态栏中的意图更改为

Intent i = new Intent();
i.setAction("com.help.KILLME");
context.sendBroadcast(i);

然后将其放入要从状态栏中关闭的活动中:

private final BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        finish();
    }
};


//OnCreate method
//[...]
IntentFilter filter = new IntentFilter();
    filter.addAction("com.help.KILLME");
    registerReceiver(receiver, filter);

这将停止活动的活动(不要忘记在onPause()中取消注册接收者并在onResume()中重新注册)