【问题标题】:android launched activity exit callback functionandroid启动activity退出回调函数
【发布时间】:2013-06-20 13:31:37
【问题描述】:

我正在从 android 服务启动 android 设置活动。

Intent LaunchIntent =  getPackageManager().getLaunchIntentForPackage("com.android.settings");
startActivity(LaunchIntent);

我正在搜索,如何检测设置活动是否关闭,因为我需要一些回调方法。

如果有回调方法知道设置或任何其他应用程序如浏览器,如果在此方法中启动,则知道启动的活动是否退出。

由于设置和浏览器是通用代码,我们不能将广播代码放入这些活动中。

【问题讨论】:

  • 您可以尝试使用startActivityForResult.
  • 您不能从服务中启动ActivityForResult,因为此操作是阻塞操作,通常您希望服务继续。

标签: android android-intent android-asynctask android-activity


【解决方案1】:

使用startActivityForResult 启动设置活动,如下所示:

Intent LaunchIntent = 
           getPackageManager().getLaunchIntentForPackage("com.android.settings");
startActivityForResult(LaunchIntent, 42); 

通常,您会使用特定的请求代码作为第二个参数,但在这种情况下,您无法控制 Activity 可能返回的设置结果,您只想知道它何时完成,因此您可以本质上构成了一个请求代码。但是,它必须大于 0。文档在这里说明了这一点:

requestCode 如果 >= 0,则活动退出时会在 onActivityResult() 中返回此代码。

然后,您可以重写onActivityResult 方法来处理设置活动关闭时发生的情况:

@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data){
    // Do whatever you would like to do
}

如果您在启动 Activity 时使用了特定的请求代码,您可以在此处检查结果代码是否存在,但由于我们不期待任何实际结果,因此结果代码可能等于 @987654325 @,不过没关系,因为你至少知道 Activity 被取消了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-17
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2018-01-13
    相关资源
    最近更新 更多