停止由另一个类运行的服务

时间:2016-02-01 07:42:14

标签: java android android-intent android-service

我有Fragment fr Service ser BroadcastReceiver brc 。< / p>

fr 中我有一个开关,当选中它时会启动 ser ,当取消选中时它会停止它,到目前为止一直很好。

ser 中,我注册了一个名为 brc BroadcastReceiver,并添加了一个名为 USER_PRESENT IntentFilter,设备已锁定,我有Service来电stopSelf()并注册BroadcastReceiver,当手机解锁时,onReceive()会被呼叫,我已添加了该方法用于再次启动Service的代码。

现在,问题是......即使我正在调用Service,我也无法在取消选中开关时停止stopService(intentname);

我的猜测是,这是一个不同的Intent由不同的类发起。所以我已经停止Intent这样:

stopService(brc.intentname);

没有任何事情发生,Service一直在运行。这是什么解决方案?。

代码:

片段

if ( !Switched ) {
    getActivity().startService(ServiceIntent);
} 
if( Switched ){
    getActivity().stopService(ServiceIntent);
    getActivity().stopService(BroadcastTest.ServiceIntent);

}

服务

if( !isScreenOn && isLocked )
{
    this.getApplicationContext().registerReceiver(new BroadcastTest(), new IntentFilter("android.intent.action.USER_PRESENT"));
    CancelTimer();
    stopSelf();
}

BroadcastTest

ServiceIntent = new Intent(context, Service.class);
context.startService(ServiceIntent);

0 个答案:

没有答案