我正在启动android设置活动,从android服务。
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.settings");
startActivity(LaunchIntent);
我正在搜索,如何检测设置活动是否关闭,因为我需要一些回调方法。
如果有一个回调方法来知道设置或任何其他应用程序,如浏览器,如果在这个方法中启动,知道启动的活动是否退出自己的
由于设置和浏览器是通用代码,我们不能在这些活动中放置广播代码。
使用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
}
如果你在启动活动时使用了特定的请求代码,这是你检查结果代码是否存在的地方,但由于我们不期望任何实际结果,结果代码可能等于RESULT_CANCELLED
,但这没关系,因为你至少知道活动被取消了