2017-05-15 3 views
0

Ich habe nichts über dieses Thema gefunden, aber ich bin gespannt, was Ihre Empfehlungen oder "Best Practices" bezüglich sind, wenn die Regeln zum Planen der Aufgabe festlegen? Zum Beispiel, wenn ich eine Synchronisierung planen haben, die immer da, wie die App läuft, so lange sein sollte, wo wäre dieevernote android-job: Wann ist die richtige Zeit, um die Zeitplanregeln festzulegen?

new JobRequest.Builder("...").. 
    .build() 
    .schedule() 

genannt werden?

Danke

Antwort

1

Sie sollten Jobcreator erstellen, die Ihren Job Klasse wie folgt instanziiert wird:

public class MyJobCreator implements JobCreator { 

    @Override 
    public Job create(String tag) { 
     if (MyJob.TAG.equals(tag)) { 
      return new MyJob(); 
     } 

     return null; 
    } 
} 

und initialisieren es in Application.onCreate():

JobManager.create(this).addJobCreator(new MyJobCreator()); 
MyJob.scheduleJob(); 

MyJob wie folgt aussehen:

public class MyJob extends Job { 

    public static final String TAG = "my_job_tag"; 

    @Override 
    @NonNull 
    protected Result onRunJob(Params params) { 
     Intent i = new Intent(getContext(), MyService.class); 
     getContext().startService(i); 
     return Result.SUCCESS; 
    } 

    public static void scheduleJob() { 
     new JobRequest.Builder(MyJob.TAG) 
       .setPeriodic(60_000L) // 1 minute 
       .setRequiredNetworkType(JobRequest.NetworkType.ANY) 
       .setPersisted(true) 
       .setUpdateCurrent(true) 
       .setRequirementsEnforced(true) 
       .build() 
       .schedule(); 
    } 
} 
+0

1 Minute würde eine Ausnahme auslösen. Vielleicht möchten Sie es mindestens 15 Minuten machen. – NinjaCoder

Verwandte Themen