java - 如何使用 JobScheduler 显示 toast 消息
问题描述
我一直在andorid学习jobscheduler。我试图在每 1 分钟后在 onstartjob() 中显示一条吐司消息。但它没有出现。任何帮助将不胜感激。
jobschedul_service .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;
}
}
MainActivity.class:
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());
}
}
清单.xml:
<service
android:name=".jobschedul_service"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE"></service>
解决方案
得到了答案!
原因是setperiodic(long interval)。
此功能是在 API 21 即 Lolipop 版本中添加的。而我在版本 > Lolipop 上运行应用程序。
在 API 24 中添加,即牛轧糖
因此,如果您将应用程序定位在 Nougat 之下,即 < Nougat but >= Lolipop,则使用 setPeriodic(long interval) 方法,而如果您的目标定位 >= Nougat,则使用 setPeriodic(long interval, long flexinterval)。
解决方案
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.N)
{
builder.setPeriodic(900000,6000);
}
else
{
builder.setPeriodic(900000);
}
推荐阅读
- jquery - Django中的引导滑块不起作用
- google-apps-script - 是否可以在 Google Apps 脚本中创建 getCommenters() 功能?
- apache-kafka - 需要使用 Oracle Golden Gate Big-Data 和 kafka Handler 基于分区从 oracle 12c 复制数据
- .net - .net 标准中的 IHttpContextAccessor 引用自 .net 框架
- php - PHP/yii 查询抛出 SQLSTATE[3F000]: Invalid schema name: 7 ERROR: schema "t" 不存在
- android - 通知未在广播接收器中显示
- arrays - 为什么 Bash 关联数组不维护索引顺序?
- react-native - Admob 广告未在我的反应原生应用中显示
- google-cloud-platform - 无服务器 VPC 访问连接器 - 无法连接到跨区域网络资源
- java - Java 多线程示例 - 对象是否共享