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