1

いろいろなところからサービスを停止しています。コマンド「stopService(Intent intent)」の送信者が NetworkReceivar クラス (BroadcastReceiver を拡張) であったことを確認するにはどうすればよいですか??

これは、これをより明確にするための私のコードです:

public class NetworkReceiver extends BroadcastReceiver{

public void onReceive(Context context, Intent intent) {
    boolean isNetworkDown = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
    if (isNetworkDown) {
        context.stopService(new Intent(context, MyService.class));
    }

私のサービスクラス:

public void onDestroy() {
    Log.i(TAG, "OnDestroy");
    // if came from NetworkReceiver do something.
    this.updater.interrupt();
    this.updater = null;
    super.onDestroy();
}
4

1 に答える 1

0

コマンド「stopService(Intent intent)」の送信者が NetworkReceivar クラス (BroadcastReceiver を拡張) であったことを確認するにはどうすればよいですか??

私の知る限り、できません。

ただし、 の代わりに をstopService()呼び出しstartService()て、サービスが「シャットダウンする時間」と解釈するコマンドを送信することもできます。あなたのコマンドである何かをIntent使用して送信者を示すことができるため、送信者を別の送信者と区別できます。また、サービスはstopSelf()それ自体をシャットダウンするために呼び出すことができます。

于 2013-09-19T14:12:19.897 に答える