JobService

JobService的使用

沒有總結,只有代碼,不解釋

api 21以上纔可以使用

import android.annotation.SuppressLint;
import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.PersistableBundle;
import android.support.annotation.RequiresApi;

import com.lcy.lopdatacloud.mylibrary.Constant;
import com.lcy.lopdatacloud.mylibrary.MyJobService;

public class JobServiceUtils {

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private static void scheduleJob(Context context, Class tClass, String productIds, String channelCode) {
        @SuppressLint("JobSchedulerService")
        ComponentName serviceComponent = new ComponentName(context, tClass);
        JobInfo.Builder builder = new JobInfo.Builder(0, serviceComponent);

        builder.setPeriodic(Constant.TIME_INTERVAL);
        builder.setPersisted(false);
        builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
        builder.setRequiresCharging(false);
        builder.setRequiresDeviceIdle(false);

        PersistableBundle bundle = new PersistableBundle();
        bundle.putString("productIds", productIds);
        bundle.putString("channelCode", channelCode);
        builder.setExtras(bundle);

        JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
        jobScheduler.schedule(builder.build());

    }


    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public synchronized static void startAlarmManager(Context context, Class tClass, String productIds, String channelCode, boolean isServer) {

        Intent intent = new Intent(context, MyJobService.class);
        scheduleJob(context.getApplicationContext(), tClass,  productIds, channelCode, isServer);
        context.startService(intent);

    }

}
import android.app.job.JobParameters;
import android.app.job.JobService;
import android.content.Intent;
import android.os.Build;
import android.support.annotation.RequiresApi;

import com.lcy.lopdatacloud.LopDataCloud;

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class MyJobService extends JobService {

    public MyJobService(){

    }

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

   
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_NOT_STICKY;
    }

    @Override
    public boolean onStartJob(JobParameters params) {
       
        String productIds = params.getExtras().getString("productIds");
        String channelCode = params.getExtras().getString("channelCode");

        LopDataCloud.getInstance().initLopDataCloud(this, productIds, channelCode);
        jobFinished(params, false);
        return true;
    }

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

調用

JobServiceUtils.startAlarmManager(context, MyJobService.class,  productIds, channelCode);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章