Android 如何检测导致我暂停活动的活动
我遇到了一个难题,我必须知道是谁导致我的活动进入后台。我的意思是,如果调用了我的activity onPause方法,我必须知道将继续进行哪些其他活动。您检查过这个吗 你的回答是: 支持我的android项目中有两项活动活动A和活动B 当前ActivityA正在运行。 活动A在以下情况下进入后台(onPaush)Android 如何检测导致我暂停活动的活动,android,Android,我遇到了一个难题,我必须知道是谁导致我的活动进入后台。我的意思是,如果调用了我的activity onPause方法,我必须知道将继续进行哪些其他活动。您检查过这个吗 你的回答是: 支持我的android项目中有两项活动活动A和活动B 当前ActivityA正在运行。 活动A在以下情况下进入后台(onPaush) 从activityA转到ActivityB 按下主页按钮 任何其他需要放弃的活动(如:输入呼叫到您的设备) 因此以上是可能性avtivityA在onPaush中,任何其他活动都在on
希望,你明白了……你检查过这个吗 你的回答是: 支持我的android项目中有两项活动活动A和活动B 当前ActivityA正在运行。 活动A在以下情况下进入后台(onPaush)
希望,您了解……在活动内部使用两个静态标志(一个用于活动转到后台,另一个用于存储的是活动调用, 使用这些变量
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;
,这是所有设备进入后台的唯一方法(当单击“主页”按钮并睡眠时)在活动内部使用两个静态标志(一个用于活动进入后台,另一个用于存储被调用的活动),
使用这些变量
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;
,这是所有设备进入后台的唯一方法(单击“主页”按钮并睡眠)查看ActivityManager,从其他应用程序获取最近启动的活动列表
公开
列表
getRunningTasks(int-maxNum)
返回要执行的任务的列表
目前正在运行,最
最近的是第一个和老的
在顺序之后。注意“运行”
不表示任务的任何代码
当前已加载或活动--
任务可能已被冻结
系统,以便可以在
它的前一个状态在下一个
到前台
当然,您可能希望使用带有“排除”的标志RECENT\u
来确保获得所有活动,即使是有意将自己从该列表中排除的活动
public static final int
最近的(不包括)
添加在API级别1标志中,用于getRecentTasks(int,int)
:
返回所有任务,即使是那些设置了
FLAG\u ACTIVITY\u EXCLUDE\u\u FROM\u RECENTS\u
FLAG
此外,如果主屏幕未显示在该列表中,则当用户按下时,您可能必须跟踪主屏幕。查看ActivityManager以获取其他应用程序最近启动的活动列表
公开
列表
getRunningTasks(int-maxNum)
返回要执行的任务的列表
目前正在运行,最
最近的是第一个和老的
在顺序之后。注意“运行”
不表示任务的任何代码
当前已加载或活动--
任务可能已被冻结
系统,以便可以在
它的前一个状态在下一个
到前台
当然,您可能希望使用带有“排除”的标志RECENT\u
来确保获得所有活动,即使是有意将自己从该列表中排除的活动
public static final int
最近的(不包括)
添加在API级别1标志中,用于getRecentTasks(int,int)
:
返回所有任务,即使是那些设置了
FLAG\u ACTIVITY\u EXCLUDE\u\u FROM\u RECENTS\u
FLAG
此外,如果主屏幕没有显示在该列表中,则当用户按下时,您可能必须跟踪该屏幕。这两个活动都来自您的应用程序本身吗?听起来很奇怪。因为用户也可能切换到另一个应用程序。我可以知道为什么要这样做吗?这两个活动都来自您的应用程序吗你的应用程序本身?听起来很奇怪。因为用户也可能已经切换到另一个应用程序。我可以知道你为什么要这样做吗?因为我使用黑客方法创建了第三部分锁屏。我的锁屏必须成为默认的主应用程序。当用户触摸主控键时,它将显示我的锁屏主控屏幕,它不是n-UI和半透明活动。该活动仅用于启动另一个家庭应用程序(也是由我创建的)。但它会在很短的时间内刷新。当我从那个空的家开始第二个家时。啊,好吧,这很有趣。我假设你会覆盖“家”按钮,再加上你会覆盖接收广播接收器的呼叫。对吗?到目前为止,我的回答中只有最后两行可能对你有帮助。而且,你可能会想拦截音量键(虽然可能不是必需的)、一些手机上罕见的硬件摄像头按钮、电源按钮/唤醒事件,所有这些都配有广播接收器。我们不要忘记后退键事件、菜单键(以防万一),汽车停靠事件和媒体停靠事件。顺便问一下,您希望屏幕锁工作的api范围是什么