Мой код ниже. Разделено на java файлов. мне положили все относительные разрешения и код. Но я не могу показать вывод в logcat. Я использую Android Studio в качестве IDE и android Studio версии 3.5.3.
Здесь я делаю Executor, который содержит Thread. я просто хочу показывать «Ответ» каждые 5 секунд в logcat.
MJobExecuter
public class MJobExecuter extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... strings) {
return "Responce";
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
System.out.println("Response" + s);
}
}
MJobScheduler
public class MJobScheduler extends JobService {
private MJobExecuter mJobExecuter = new MJobExecuter();
@Override
public boolean onStartJob(final JobParameters params) {
mJobExecuter = new MJobExecuter(){
@Override
protected void onPostExecute(String s) {
Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
jobFinished(params,false);
}
};
mJobExecuter.execute();
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
mJobExecuter.cancel(true);
return false;
}
}
MainActivity
public class MainActivity extends AppCompatActivity {
private static final int JOB_ID = 1;
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, MJobScheduler.class);
JobInfo.Builder builder = new JobInfo.Builder(JOB_ID,componentName);
builder.setPeriodic(5000);
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
builder.setPersisted(true);
jobInfo = builder.build();
jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
}
public void scheduleJob(View v) {
jobScheduler.schedule(jobInfo);
Toast.makeText(this, "Start", Toast.LENGTH_SHORT).show();
}
public void cancelJob(View v) {
jobScheduler.cancel(JOB_ID);
Toast.makeText(this, "Stop", Toast.LENGTH_SHORT).show();
}
}
Манифест
разрешение
uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"
сервис
<service
android:name=".MJobScheduler"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE" />