Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MyService extends JobService {
- private int notificationNumber = 0;
- private Thread thread;
- @Override
- public boolean onStartJob(JobParameters params) {
- Toast.makeText(this, "Service1 Started with JobId: " + params.getJobId(), Toast.LENGTH_LONG).show();
- thread = new WorkerThread(this, params);
- thread.start();
- return true;
- }
- @Override
- public boolean onStopJob(JobParameters params) {
- createNotification("Service1 onStop with JobId");
- return false;
- }
- public void createNotification(String msg) {
- notificationNumber++;
- NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
- builder.setContentText(msg);
- builder.setContentTitle("New Notification #" + notificationNumber);
- builder.setSmallIcon(R.mipmap.ic_launcher);
- builder.setAutoCancel(true);
- NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
- Notification notification = builder.build();
- manager.notify(notificationNumber, notification);
- }
- }
- class WorkerThread extends Thread {
- private MyService service;
- private JobParameters params;
- public WorkerThread(MyService service, JobParameters params) {
- this.service = service;
- this.params = params;
- }
- @Override
- public void run() {
- try {
- service.createNotification("Service1.WorkerThread Started");
- Thread.sleep(10000);
- service.createNotification("Service1.WorkerThread Finished");
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- Log.i("##########", "Job Finished");
- service.jobFinished(params, false);
- }
- }
- }
- public void scheduleService() {
- int JOB_ID =1;
- long y=100;
- ComponentName serviceName = new ComponentName(this, MyService.class);
- JobInfo jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
- // .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
- // .setBackoffCriteria(y,JobInfo.BACKOFF_POLICY_LINEAR)
- .setPeriodic(y)
- .setRequiresDeviceIdle(true)
- .build();
- JobScheduler scheduler = (JobScheduler) this.getSystemService(Context.JOB_SCHEDULER_SERVICE);
- int result = scheduler.schedule(jobInfo);
- if (result == JobScheduler.RESULT_SUCCESS) {
- Log.d("Test", "Job scheduled successfully!");
- }
- }
- JobInfo jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
- // .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
- // .setBackoffCriteria(y,JobInfo.BACKOFF_POLICY_LINEAR)
- .setPeriodic(y)
- // .setRequiresDeviceIdle(true)
- .build();
- if (result == JobScheduler.RESULT_SUCCESS) {
- Log.d("Test", "Job scheduled successfully!");
- }
- <service
- android:name=".MyService"
- android:enabled="true"
- android:permission="android.permission.BIND_JOB_SERVICE"
- android:exported="true"></service>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement