Advertisement
Guest User

scheduler as fuck

a guest
Sep 8th, 2016
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.40 KB | None | 0 0
  1. Job Service class
  2.  
  3. public class MyJobService extends JobService {
  4.  
  5.     private static final String TAG = "MyJobService";
  6.  
  7.     @Override
  8.     public boolean onStartJob(JobParameters jobParameters) {
  9.         Log.d(TAG, "Job started");
  10.         new JobTask(this).execute(jobParameters);
  11.         return true;
  12.     }
  13.  
  14.     @Override
  15.     public boolean onStopJob(JobParameters jobParameters) {
  16.         Log.d(TAG, "Job stopped: criteria not met");
  17.         return true;
  18.     }
  19.  
  20.     private static class JobTask extends AsyncTask<JobParameters, Void, JobParameters> {
  21.  
  22.         JobService jobService;
  23.  
  24.         public JobTask(MyJobService myJobService) {
  25.             this.jobService = myJobService;
  26.         }
  27.  
  28.         @Override
  29.         protected JobParameters doInBackground(JobParameters... jobParameterses) {
  30.             SystemClock.sleep(5000);
  31.             return jobParameterses[0];
  32.         }
  33.  
  34.         @Override
  35.         protected void onPostExecute(JobParameters jobParameters) {
  36.             super.onPostExecute(jobParameters);
  37.             Log.d(TAG, "Task finished");
  38.             jobService.jobFinished(jobParameters, true);
  39.         }
  40.     }
  41. }
  42.  
  43.  
  44. UI class
  45.  
  46. public class UIActivity extends AppCompatActivity {
  47.  
  48.     private static final String TAG = "UIActivity";
  49.  
  50.     Button btn;
  51.     TextView tv;
  52.  
  53.     JobScheduler jobScheduler;
  54.     JobInfo jobInfo;
  55.  
  56.     @Override
  57.     protected void onCreate(@Nullable Bundle savedInstanceState) {
  58.         super.onCreate(savedInstanceState);
  59.         setContentView(R.layout.activity_ui);
  60.         btn = (Button) findViewById(R.id.btn_start);
  61.         tv = (TextView) findViewById(R.id.tv);
  62.         btn.setOnClickListener(new View.OnClickListener() {
  63.             @Override
  64.             public void onClick(View view) {
  65.                 // start schedule
  66.                 Log.d(TAG, "button clciked");
  67.                 jobScheduler.schedule(jobInfo);
  68.             }
  69.         });
  70.  
  71.         jobInfo = new JobInfo.Builder(1, new ComponentName(this, MyJobService.class))
  72.                 .setPeriodic(30000)
  73.                 .setPersisted(true)
  74.                 .build();
  75.         jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
  76.     }
  77.  
  78. }
  79.  
  80. manifest
  81.  
  82.         <service
  83.             android:name="com.example.android.myexample.MyJobService"
  84.             android:permission="android.permission.BIND_JOB_SERVICE"
  85.             android:exported="true"/>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement