0

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

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

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

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

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

4

1 回答 1

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 时使用了特定的请求代码,您可以在此处检查结果代码是否存在,但由于我们不期望任何实际结果,因此结果代码可能等于RESULT_CANCELLED,但这没关系,因为你至少知道活动被取消了。

于 2013-06-20T13:52:53.977 回答