Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. public class MyService extends JobService {
  2. private int notificationNumber = 0;
  3.  
  4. private Thread thread;
  5.  
  6.  
  7. @Override
  8. public boolean onStartJob(JobParameters params) {
  9. Toast.makeText(this, "Service1 Started with JobId: " + params.getJobId(), Toast.LENGTH_LONG).show();
  10. thread = new WorkerThread(this, params);
  11. thread.start();
  12. return true;
  13. }
  14.  
  15. @Override
  16. public boolean onStopJob(JobParameters params) {
  17. createNotification("Service1 onStop with JobId");
  18. return false;
  19. }
  20.  
  21. public void createNotification(String msg) {
  22. notificationNumber++;
  23. NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
  24. builder.setContentText(msg);
  25. builder.setContentTitle("New Notification #" + notificationNumber);
  26. builder.setSmallIcon(R.mipmap.ic_launcher);
  27. builder.setAutoCancel(true);
  28.  
  29. NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
  30. Notification notification = builder.build();
  31. manager.notify(notificationNumber, notification);
  32. }
  33.  
  34. }
  35.  
  36. class WorkerThread extends Thread {
  37. private MyService service;
  38. private JobParameters params;
  39. public WorkerThread(MyService service, JobParameters params) {
  40. this.service = service;
  41. this.params = params;
  42. }
  43.  
  44. @Override
  45. public void run() {
  46. try {
  47. service.createNotification("Service1.WorkerThread Started");
  48. Thread.sleep(10000);
  49.  
  50. service.createNotification("Service1.WorkerThread Finished");
  51. } catch (Exception e) {
  52. e.printStackTrace();
  53. } finally {
  54. Log.i("##########", "Job Finished");
  55. service.jobFinished(params, false);
  56. }
  57. }
  58. }
  59.  
  60. public void scheduleService() {
  61. int JOB_ID =1;
  62. long y=100;
  63. ComponentName serviceName = new ComponentName(this, MyService.class);
  64. JobInfo jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
  65. // .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
  66. // .setBackoffCriteria(y,JobInfo.BACKOFF_POLICY_LINEAR)
  67. .setPeriodic(y)
  68. .setRequiresDeviceIdle(true)
  69. .build();
  70. JobScheduler scheduler = (JobScheduler) this.getSystemService(Context.JOB_SCHEDULER_SERVICE);
  71. int result = scheduler.schedule(jobInfo);
  72. if (result == JobScheduler.RESULT_SUCCESS) {
  73. Log.d("Test", "Job scheduled successfully!");
  74. }
  75. }
  76.  
  77. JobInfo jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
  78. // .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
  79. // .setBackoffCriteria(y,JobInfo.BACKOFF_POLICY_LINEAR)
  80. .setPeriodic(y)
  81. // .setRequiresDeviceIdle(true)
  82. .build();
  83.  
  84. if (result == JobScheduler.RESULT_SUCCESS) {
  85. Log.d("Test", "Job scheduled successfully!");
  86. }
  87.  
  88. <service
  89. android:name=".MyService"
  90. android:enabled="true"
  91. android:permission="android.permission.BIND_JOB_SERVICE"
  92. android:exported="true"></service>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement