我试图让我的应用程序尽可能健壮和友好,并针对所有可能的情况进行测试。现在,我正在我的应用程序中启动排行榜:
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(getApiClient(), ID), 1);
当显示排行榜活动时(通过主要活动),用户按下'主页'关键在他们的设备上,并留下一段时间,四件事之一(我认为),可能会发生:
1)没有任何事情发生,用户可以自由地返回应用程序(它将从哪里取出,因为它仍然在内存中)
2)我的应用程序的主要活动(它只有一个活动)被系统杀死以及排行榜活动以释放资源
3)我的应用程序的主要活动被系统杀死以释放资源(但排行榜活动仍然存在)
4)排行榜活动被终止,主应用程序存活
现在,重新启动时,我有代码(使用简单的int变量)来跟踪应用程序暂停时是否显示排行榜。
显然,这个int值只能知道按下home键时排行榜的状态。
重新启动时,如何知道排行榜活动的当前状态?我如何知道它是否仍然存在或系统是否已将其杀死?我需要知道这一点,所以我可以处理任何情况。 (即,如果它仍然存在,那么就不需要重新启动它。)
修改
总结一下,在之前进入后台后返回应用程序时,我怎么知道排行榜活动是否仍然存在/是否显示?
答案 0 :(得分:0)
我找到了如何做到这一点。我已经对它进行了测试,效果非常好。
我最初将Intent声明为实例变量:
private Intent myLeaderboard;
然后在我的 ShowLeaderboard()方法中,我这样做:
ShowLeaderBoard(){
//Only create new object if one doesn't currently exist
if (myLeaderboard==null){
myLeaderboard = Games.Leaderboards.getLeaderboardIntent(getApiClient(), ID);
}
myLeaderboard.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivityForResult(myLeaderboard, 1);
}