android启动活动退出回调函数

时间:2013-06-20 13:31:37

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

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

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

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

如果有回调方法来了解设置或任何其他应用程序(如浏览器),则在此方法中启动以了解已启动的活动是否已退出。

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

1 个答案:

答案 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}},但这没关系,因为你至少知道活动被取消了。