На самом деле в Android хотят запустить свою работу через 1 минуту, независимо от того, активно приложение или нет, но оно запускает мою работу примерно через 3,4 минуты, но я не хочу, пожалуйста, дайте мне совет, как я могу запустить его в соответствии с моими данными время.
Заранее спасибо.
Вот мой код:
ComponentName componentName = new ComponentName(MainActivity.this, JobSchedularClass.class);
jobInfo = new JobInfo.Builder(code, componentName)
.setMinimumLatency(1000)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setOverrideDeadline(1000)
.setPersisted(true)
.build();
jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
}
public void Startjob(View view) {
int code_result = jobScheduler.schedule(jobInfo);
Toast.makeText(this, " Job scheduling...", Toast.LENGTH_SHORT).show();
if (code_result == JobScheduler.RESULT_SUCCESS) {
Toast.makeText(this, " Job scheduling done...", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, " Job scheduling failed...", Toast.LENGTH_SHORT).show();
}
}
public void Stopjob(View view) {
jobScheduler.cancel(code);
Toast.makeText(this, " Job cancel...", Toast.LENGTH_SHORT).show();
}
Вот мой код класса обслуживания Job:
public class JobSchedularClass extends JobService {
private static final String TAG = "JobSchedularClass";
private BackgroundJob backgroundJob;
@Override
public boolean onStartJob(final JobParameters params) {
Log.d(TAG, "onStartJob: ");
backgroundJob=new BackgroundJob(){
@Override
protected void onPostExecute(String s) {
Toast.makeText(getApplicationContext(),s,Toast.LENGTH_SHORT).show();
jobFinished(params,true);
}
};
backgroundJob.execute();
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
Log.d(TAG, "onStopJob: ");
backgroundJob.cancel(true);
return false;
}
}
Вот мой код Async Task:
public class BackgroundJob extends AsyncTask<Void,Void,String> {
private static final String TAG = "BackgroundJob";
@Override
protected String doInBackground(Void... voids) {
Log.d(TAG, "doInBackground: ");
return "BackGround Job is running";
}
}