Java 如何使用JobScheduler显示toast消息
我一直在安道尔学习作业调度器。我尝试在onstartjob()中每隔1分钟显示一条祝酒词。但它没有出现。任何帮助都将不胜感激 作业计划服务。类别:Java 如何使用JobScheduler显示toast消息,java,android,service,android-jobscheduler,Java,Android,Service,Android Jobscheduler,我一直在安道尔学习作业调度器。我尝试在onstartjob()中每隔1分钟显示一条祝酒词。但它没有出现。任何帮助都将不胜感激 作业计划服务。类别: package com.prajwal.jobscheduler; import android.app.Service; import android.app.job.JobParameters; import android.app.job.JobScheduler; import android.app.job.JobService; imp
package com.prajwal.jobscheduler;
import android.app.Service;
import android.app.job.JobParameters;
import android.app.job.JobScheduler;
import android.app.job.JobService;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class jobschedul_service extends JobService {
@Override
public boolean onStartJob(JobParameters jobParameters) {
Toast.makeText(getApplicationContext(), "After 15 minutes", Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
return true;
}
}
package com.prajwal.jobscheduler;
import androidx.appcompat.app.AppCompatActivity;
import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
import android.content.Context;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
private static final int LOAD_ARTWORK_JOB_ID = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JobScheduler jobScheduler =
(JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(new JobInfo.Builder
(LOAD_ARTWORK_JOB_ID, new ComponentName(this, jobschedul_service.class))
.setPeriodic(900000)
.build());
}
}
<service
android:name=".jobschedul_service"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE"></service>
MainActivity.class:
package com.prajwal.jobscheduler;
import android.app.Service;
import android.app.job.JobParameters;
import android.app.job.JobScheduler;
import android.app.job.JobService;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class jobschedul_service extends JobService {
@Override
public boolean onStartJob(JobParameters jobParameters) {
Toast.makeText(getApplicationContext(), "After 15 minutes", Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
return true;
}
}
package com.prajwal.jobscheduler;
import androidx.appcompat.app.AppCompatActivity;
import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
import android.content.Context;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
private static final int LOAD_ARTWORK_JOB_ID = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JobScheduler jobScheduler =
(JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(new JobInfo.Builder
(LOAD_ARTWORK_JOB_ID, new ComponentName(this, jobschedul_service.class))
.setPeriodic(900000)
.build());
}
}
<service
android:name=".jobschedul_service"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE"></service>
Manifest.xml:
package com.prajwal.jobscheduler;
import android.app.Service;
import android.app.job.JobParameters;
import android.app.job.JobScheduler;
import android.app.job.JobService;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class jobschedul_service extends JobService {
@Override
public boolean onStartJob(JobParameters jobParameters) {
Toast.makeText(getApplicationContext(), "After 15 minutes", Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
return true;
}
}
package com.prajwal.jobscheduler;
import androidx.appcompat.app.AppCompatActivity;
import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
import android.content.Context;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
private static final int LOAD_ARTWORK_JOB_ID = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JobScheduler jobScheduler =
(JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(new JobInfo.Builder
(LOAD_ARTWORK_JOB_ID, new ComponentName(this, jobschedul_service.class))
.setPeriodic(900000)
.build());
}
}
<service
android:name=".jobschedul_service"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE"></service>
找到答案了强> 原因是设置周期(长间隔) 根据以下标准: 此函数是在API 21即Lolipop版本中添加的。而我在version>Lolipop上运行应用程序 鉴于下图中的新功能: API 24中添加了牛轧糖 因此,如果您将应用程序定位在牛轧糖以下,即
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.N)
{
builder.setPeriodic(900000,6000);
}
else
{
builder.setPeriodic(900000);
}
找到答案了强> 原因是设置周期(长间隔) 根据以下标准: 此函数是在API 21即Lolipop版本中添加的。而我在version>Lolipop上运行应用程序 鉴于下图中的新功能: API 24中添加了牛轧糖 因此,如果您将应用程序定位在牛轧糖以下,即
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.N)
{
builder.setPeriodic(900000,6000);
}
else
{
builder.setPeriodic(900000);
}
我想你已经在这两者之间徘徊了,但实施工作仍在继续。查看链接:获取完整的指导。仍然没有工作。没有重复间隔工作,否则?我看不到吐司味精本身。我还在onstartjob()中的值上添加了断点,但断点本身不会被执行/捕获。可以看出,它从不调用服务类。这是因为我正在运行MainAct的oncreate()中的代码吗?我想您已经陷入了这两者之间,而实现仍然存在。查看链接:获取完整的指导。仍然没有工作。没有重复间隔工作,否则?我看不到吐司味精本身。我还在onstartjob()中的值上添加了断点,但断点本身不会被执行/捕获。可以看出,它从不调用服务类。这是因为我在MainAct的oncreate()中运行代码吗??