Android本地广播无法在JobService中运行

时间:2017-03-21 07:34:47

标签: android localbroadcastmanager android-jobscheduler

我正在尝试从JobService发送广播并从活动中接收广播。

这是我试过的

MyJobService

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class MyJobService extends JobService {
    @Override
    public boolean onStartJob(JobParameters params) {
       if (!HomeActivity.isOpen) {
          Intent intent = new Intent(getApplicationContext(), HomeActivity.class);
          intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
          startActivity(intent);
       } else {
          Intent sendNoti = new Intent("location_turned_off");
          sendBroadcast(sendNoti);
       }
       jobFinished(params, false);
       return true;
    }

    @Override
    public boolean onStopJob(JobParameters params) {
        return true;
    }
}

在我的活动中

public static boolean isOpen;
@Override
protected void onResume() {
   super.onResume();
   isOpen = true;
   LocalBroadcastManager.getInstance(this).registerReceiver(locationTurnedOff,new IntentFilter("location_turned_off"));
}
    @Override
    protected void onPause() {
      super.onPause();
      isOpen = false;          
   LocalBroadcastManager.getInstance(this).unregisterReceiver(locationTurnedOff);                                                      
    }



private BroadcastReceiver locationTurnedOff = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("onReceive","Broadcast received");//nothing is triggered here
    }
};

修改

我有条件地发送广播,如果活动是onResume状态我正在发送广播

0 个答案:

没有答案