我遇到了一个棘手的问题,我必须知道是谁导致我的活动变为背景。我的意思是如果调用我的活动onPause方法,我必须知道onResume会有哪些其他活动。
答案 0 :(得分:1)
查看ActivityManager的getRunningTasks以获取其他应用程序中最近启动的活动的列表。
公开 名单 getRunningTasks(int maxNum)
返回任务列表 目前正在运行,最多 最近是第一个和更早的 按顺序注意“跑步” 并不意味着任何任务的代码 目前正在加载或活动 - 任务可能已被冻结 系统,以便可以重新启动 它的下一个带来的先前状态 到前台。
当然,您可能希望使用标记 RECENT_WITH_EXCLUDED
来确保您获得所有活动,甚至是有意将自己从该列表中排除的活动。
public static final int
RECENT_WITH_EXCLUDED
在API级别1标记中添加,用于
getRecentTasks(int, int)
: 返回所有任务,即使那些设置了他们的任务FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
旗帜。
此外,如果主屏幕未显示在该列表中,您可能必须在用户按下home button时跟踪该主屏幕。
答案 1 :(得分:0)
你的回答:
支持我在我的android项目中有两个活动。 activityA 和 ActivityB目前ActivityA正在运行。
当
时,ActivityA进入后台(onPaush)以上是可能 avtivityA在onPaush ,任何其他活动都在onResume 。
希望,你明白......
答案 2 :(得分:0)
在您的活动内部使用两个静态标志(一个用于活动转到后台,另一个用于存储是活动调用, 使用这些变量,
static boolean isActivityCalled=false;
static boolean isGoesToBackGround=false;
@Override
publivc void onResume()
{
if(isActivityCalled&&isGoesToBackGround)
{
//Application is resumes not from other activity
isActivityCalled=false;
isGoesToBackGround=false;
}
}
@Override
public void onUserLeaveHint()
{
super.onUserLeaveHint();
isGoesToBackGround=true;
}
当调用任何活动,然后设置isActivityCalled=true;
时,这是所有设备转到后台的唯一方法(单击主页按钮和睡眠时)..