如何解决作业计划没有运行
这里是我的工作,我不知道我的错误在哪里。我想按计划显示吐司,但它只显示一次 而且我想在后台安排作业默认值而不是手动启动作业。 我想创建一个 apk,我想在连接互联网后每 12 小时显示 3 秒的 UI
主活动
package com.example.myapplication4;
import androidx.appcompat.app.AppCompatActivity;
import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private static final int JOB_ID = 101;
private JobScheduler jobScheduler;
private JobInfo jobInfo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ComponentName componentName = new ComponentName(this,MJobSchedular.class);
JobInfo.Builder builder = new JobInfo.Builder(JOB_ID,componentName);
builder.setPeriodic(5000);
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
builder.setPersisted(true);
jobInfo = builder.build();
jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
}
public void scheduleJob(View view) {
jobScheduler.schedule(jobInfo);
Toast.makeText(this,"job start",Toast.LENGTH_LONG).show();
}
public void clearJob(View view) {
jobScheduler.cancel(JOB_ID);
Toast.makeText(this,"job cancel",Toast.LENGTH_LONG).show();
}
}
'MJobExecuter'
`package com.example.myapplication4;
import android.os.AsyncTask;
public class MJobExecuter extends AsyncTask<Void,Void,String> {
@Override
protected String doInBackground(Void... voids) {
return "Background Task Finisher......";
}
}`
MJobSchedul
package com.example.myapplication4;
import android.app.job.JobParameters;
import android.app.job.JobService;
import android.widget.Toast;
public class MJobSchedular extends JobService {
private MJobExecuter mJobExecuter;
@Override
public boolean onStartJob(JobParameters jobParameters) {
mJobExecuter = new MJobExecuter(){
@Override
protected void onPostExecute(String s) {
Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
jobFinished(jobParameters,false);
}
};
mJobExecuter.execute();
return true;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
mJobExecuter.cancel(true);
return true;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。