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); 

通常、特定のリクエスト コードを 2 番目の引数として使用しますが、この場合、Activity が結果として返す可能性のある設定を制御することはできず、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、少なくともアクティビティがキャンセルされたことを知っています。

于 2013-06-20T13:52:53.977 に答える