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

AFAIK,你不能。

但是,stopService()您可以调用,而不是startService(),发送您的服务解释为“关闭时间”的命令。您的命令可以用来指示发件人Intent,以便您可以将一个发件人与另一个发件人区分开来。并且,该服务可以调用stopSelf()以自行关闭。

于 2013-09-19T14:12:19.897 回答