我正在尝试开发一个支持2.3及以上版本到最新版本的Android应用程序。 它是基于会话的。 场景: 我的应用程序作为登录活动,并且在成功登录后,它启动A活动,并且可以像A活动 - > B活动 - > C活动一样开始进一步的活动。 我的问题是: 当我在C活动中并且会话到期时(会话到期来自服务器端),我需要关闭任务中的所有活动并开始新的登录活动。
我尝试使用FLAG_ACTIVITY_CLEAR_TASK(但此标志支持3.0)。请帮助我解决方案。
答案 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();
}
只需设置每个活动的到期方法即可完成活动并设置结果代码,以便之前的活动知道它应该完成。