Android - 如何检查“stopService”意图的发送者类?

时间:2013-09-19 14:05:23

标签: android class android-intent service ondestroy

我从各个地方停止服务。如何检查命令“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();
}

1 个答案:

答案 0 :(得分:0)

  

如何检查命令“stopService(Intent intent)”的发送者何时是我的NetworkReceivar类(扩展BroadcastReceiver)?

AFAIK,你不能。

但是,您可以调用stopService(),而不是startService(),通过命令将您的服务解释为“关闭时间”。您Intent上的某些内容可用于指示发件人,以便您可以区分发件人与其他发件人。而且,该服务可以调用stopSelf()关闭自己。