Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何检测导致我暂停活动的活动_Android - Fatal编程技术网

Android 如何检测导致我暂停活动的活动

Android 如何检测导致我暂停活动的活动,android,Android,我遇到了一个难题,我必须知道是谁导致我的活动进入后台。我的意思是,如果调用了我的activity onPause方法,我必须知道将继续进行哪些其他活动。您检查过这个吗 你的回答是: 支持我的android项目中有两项活动活动A和活动B 当前ActivityA正在运行。 活动A在以下情况下进入后台(onPaush) 从activityA转到ActivityB 按下主页按钮 任何其他需要放弃的活动(如:输入呼叫到您的设备) 因此以上是可能性avtivityA在onPaush中,任何其他活动都在on

我遇到了一个难题,我必须知道是谁导致我的活动进入后台。我的意思是,如果调用了我的activity onPause方法,我必须知道将继续进行哪些其他活动。

您检查过这个吗

你的回答是:

支持我的android项目中有两项活动活动A活动B

当前ActivityA正在运行。

活动A在以下情况下进入后台(onPaush)

  • 从activityA转到ActivityB
  • 按下主页按钮
  • 任何其他需要放弃的活动(如:输入呼叫到您的设备)
  • 因此以上是可能性avtivityA在onPaush中,任何其他活动都在onResume

    所以,屏幕上显示的活动在onResume中。
    希望,你明白了……

    你检查过这个吗

    你的回答是:

    支持我的android项目中有两项活动活动A活动B

    当前ActivityA正在运行。

    活动A在以下情况下进入后台(onPaush)

  • 从activityA转到ActivityB
  • 按下主页按钮
  • 任何其他需要放弃的活动(如:输入呼叫到您的设备)
  • 因此以上是可能性avtivityA在onPaush中,任何其他活动都在onResume

    所以,屏幕上显示的活动在onResume中。
    希望,您了解……

    在活动内部使用两个静态标志(一个用于活动转到后台,另一个用于存储的是活动调用, 使用这些变量

    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范围是什么