Планировщик заданий Android - PullRequest
0 голосов
/ 20 марта 2020

На самом деле! Я хочу сделать приложение, которое постоянно обнаруживает, что соединение Inte rnet подключено или отключено. Для этого я использую Job Scheduler, потому что он также работает на версии Oreo или выше. Для этого я установил задание Info Info .setRequiredNetworkType (JobInfo.NETWORK_TYPE_NONE), потому что я хочу, чтобы onStartJob () запускался при отсутствии соединения, но он не работает таким образом ... `

Это код для создание Job.

public void scheduleJob(View view) {
    ComponentName componentName = new ComponentName(this, ExampleServiceClass.class);
    JobInfo info = new JobInfo.Builder(123, componentName)
            .setRequiredNetworkType(JobInfo.NETWORK_TYPE_NONE)
            .setMinimumLatency(1000)
            .build();

    JobScheduler scheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
    int resultCode = scheduler.schedule(info);
    if (resultCode == JobScheduler.RESULT_SUCCESS) {
        Log.d(TAG, "Job scheduled");
    } else {
        Log.d(TAG, "Job scheduling failed");
    }
}

Это код класса, где я расширил JobService

public class ExampleServiceClass extends JobService {
private static final String TAG = "ExampleJobService";
private boolean jobCancelled = false;

@Override
public boolean onStartJob(JobParameters jobParameters) {
    Toast.makeText(this, ""+, Toast.LENGTH_SHORT).show();

    MainActivity.scheduleTheJob(getApplicationContext());
    return false;
}


@Override
public boolean onStopJob(JobParameters jobParameters) {
    Log.d(TAG, "Job cancelled before completion");
    Toast.makeText(this, "job stopped!!!", Toast.LENGTH_SHORT).show();
    return true;
}

}

...