Планировщик заданий не работает в фоновом режиме, когда приложение убито в версиях Android 7,8,9,10?

Я использовал таймер для вызова метода с 15-минутным интервалом внутри планировщика заданий. Но планировщик заданий работает только на этапе запуска приложения, если я убью приложение, планировщик заданий не сработает. Как запустить планировщик заданий после того, как я уничтожу свое приложение?

вот мой фрагмент кода

MainActivity.java

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    startJob();
}

private void startJob(){
    JobScheduler jobScheduler = (JobScheduler)getApplicationContext()
            .getSystemService(JOB_SCHEDULER_SERVICE);

    ComponentName componentName = new ComponentName(this,
            RecallMyServicesis.class);

    JobInfo jobInfo = new JobInfo.Builder(1, componentName)
            .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
            .setRequiresCharging(true)
            .setOverrideDeadline(15*60*1000)
            .setPersisted(true)
            .build();
    int result = jobScheduler.schedule(jobInfo);
    if(result == JobScheduler.RESULT_SUCCESS)
    {
        Log.d("MainActivity","Success");
    }else
    {
        Log.d("MainActivity","Failed");
    }
}
}

RecallMyServicesis.java

public class RecallMyServicesis extends JobService {

private static final String TAG = "RecallMyServicesis";

@Override
public boolean onStartJob(JobParameters jobParameters) {
    System.out.println("Job Fired");
    for(int i = 0; i < 10; i++){
        System.out.println("Job Fired i : "+i);
        Toast.makeText(this, "Job Fired i : "+i, Toast.LENGTH_SHORT).show();
        SystemClock.sleep(1000);
    }
    jobFinished(jobParameters, false );
    return true;
}

@Override
public boolean onStopJob(JobParameters jobParameters) {
    return false;
}
}

AndroidManifest.xml

 ​<service android:name=".RecallMyServicesis"
              android:permission="android.permission.BIND_JOB_SERVICE" />

person Secret    schedule 31.01.2020    source источник
comment
Планировщик заданий имеет ограничения, вы можете либо попробовать класс WorkManager, либо создать службу.   -  person Abdul Ahad    schedule 31.01.2020
comment
Я также создал фоновую службу, но эти службы не работают на таких телефонах, как oppo, Lenovo, mi и т. Д. Поэтому я пытаюсь создать службу планировщика заданий, но она у меня не работает.   -  person Secret    schedule 31.01.2020


Ответы (1)


Я пытаюсь работать с JobScheduler и, в конце концов, он не работает на Android 7.0. У меня аппарат самсунг с7. Но когда я развертываю apk в Moto e4 с версией Android 7.1, планировщик заданий отлично работает в фоновом режиме и в приложении, даже если я убиваю приложение, оно работает.

person Rizwan Samnani    schedule 24.12.2020