我从各个地方停止服务。如何检查命令“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();
}
答案 0 :(得分:0)
如何检查命令“stopService(Intent intent)”的发送者何时是我的NetworkReceivar类(扩展BroadcastReceiver)?
AFAIK,你不能。
但是,您可以调用stopService()
,而不是startService()
,通过命令将您的服务解释为“关闭时间”。您Intent
上的某些内容可用于指示发件人,以便您可以区分发件人与其他发件人。而且,该服务可以调用stopSelf()
关闭自己。