Stop service in an activity

后端 未结 3 742
独厮守ぢ
独厮守ぢ 2021-01-23 01:25

I\'m using following code to stop my service

Intent intent = new Intent(MainActivity.this, UsageRecorderService.class);
stopService(intent);

An

3条回答
  •  天涯浪人
    2021-01-23 01:44

    Activity:

    sendBroadcast(new Intent(ACTION_STOP));
    

    IntentService

    public class UsageRecorderService extends IntentService {
      private static final String TAG  = "UsageRecorderService";
      String ACTION_STOP = "com.xxx.UsageRecorderService.ACTION_STOP";
      boolean stop;
    
      public UsageRecorderService() {
        super("UsageRecorder");
      }
    
      private BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override public void onReceive(Context context, Intent intent) {
          if (ACTION_STOP.equals(intent.getAction())) {
            stop = true;
          }
        }
      };
    
      @Override public void onCreate() {
        super.onCreate();
        IntentFilter intentFilter = new IntentFilter(ACTION_STOP);
        registerReceiver(receiver, intentFilter);
      }
    
      @Override
      protected void onHandleIntent(Intent intent) {
        Log.i(TAG,"onHandleIntent");
        while (true && !stop) {
          Log.i(TAG,"----running----");
          //UsageRecorder.recordUsages(this, false);
          SystemClock.sleep(10000);
        }
      }
    
      @Override public void onDestroy() {
        super.onDestroy();
        unregisterReceiver(receiver);
      }
    }
    

提交回复
热议问题