2011-11-08 56 views
0

在我的申请中,我有2项活动(A和B)和1项服务。如何完成()其他活动(如果它们是开放的)

每个活动都可以调用其他自己的整理。

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

的应用程序可以创建一个状态栏图标,点击状态栏的意图开启的活动一个标志使用

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

而且我有一个退出按钮,杀死活动和服务。

我的问题,如果我有活动B打开,用户点击状态栏图标,因为用户现在看到活动A,但如果他点击退出按钮应用程序关闭活动A和服务,但显示地下活动B.我怎样才能解决问题收盘也活动B

编辑:

我与我设置为false,在应用程序启动时有一个SharedPreferences值解决,并在退出按钮点击正确的。在onResume()中检查值并完成活动(如果它为true)。

回答

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()中重新注册)

相关问题