如何关闭所有活动并在android中使用新任务启动新活动

时间:2013-07-26 17:38:05

标签: android android-intent android-activity

我正在尝试开发一个支持2.3及以上版本到最新版本的Android应用程序。 它是基于会话的。 场景: 我的应用程序作为登录活动,并且在成功登录后,它启动A活动,并且可以像A活动 - > B活动 - > C活动一样开始进一步的活动。 我的问题是: 当我在C活动中并且会话到期时(会话到期来自服务器端),我需要关闭任务中的所有活动并开始新的登录活动。

我尝试使用FLAG_ACTIVITY_CLEAR_TASK(但此标志支持3.0)。请帮助我解决方案。

2 个答案:

答案 0 :(得分:0)

您可以创建一个侦听“到期”操作的BroadcastReceiver,创建从您的活动中的BroadcastReceiver扩展的类,注册广播以侦听“到期”操作,并使用onReceive方法完成活动,这样做就可以了... 请记住正确管理广播的注册/取消注册操作,这样您就不会通过取消注册已经销毁的活动来泄露已注册的广播......

希望它有所帮助。

问候!

答案 1 :(得分:0)

我正在做类似的事情,我所做的是在登录结果后开始每项活动。当到期发生时,只需将活动结果设置为您决定的任何内容并使用finish();它看起来像这样:

登录:

getInfo(){
    yourCode;
    if(correct)
        startActivityForResult(yourIntent);
}

onActivityResult(int requestCode, int resultCode, Intent data){
    if(resultCode == 0)
        yourCode;
}

活动A:

expiration(){
    setResult(0);
    finish();
}

只需设置每个活动的到期方法即可完成活动并设置结果代码,以便之前的活动知道它应该完成。