- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的应用程序中使用 firebase jobdispatcher,但我遇到了一个问题。我想在任务完成后停止工作。我尝试在 onStartJob()
方法中调用 selfStop()
。但它的 onStopJob()
永远不会被调用。根据我的应用程序中的要求,我正在完成启动工作的 Activity 。那么谁能告诉我如何在 JobService
类中停止作业。
代码示例:
//使用 Google Play 驱动程序创建一个新的调度程序。
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));
Job downtimeOverNotificationJob = dispatcher.newJobBuilder()
.setService(AppJobService.class) // the JobService that will be called
.setTag("my-unique-tag") // uniquely identifies the job
.setTrigger(Trigger.executionWindow(20,20))
.build();
dispatcher.mustSchedule(downtimeOverNotificationJob);
@Override
public boolean onStartJob(JobParameters job) {
Toast.makeText(this, "Job started", Toast.LENGTH_SHORT).show();
new Handler(Looper.getMainLooper()).postDelayed(() -> {
//Do something after 10000ms
stopSelf();
}, 5000);
return false; // Answers the question: "Is there still work going on?"
}
@Override
public boolean onStopJob(JobParameters job) {
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(500,VibrationEffect.DEFAULT_AMPLITUDE));
}else{
//deprecated in API 26
v.vibrate(500);
}
return false; // Answers the question: "Should this job be retried?"
}
感谢任何帮助。
最佳答案
Need to call jobFinished(job, false) if you want to restart job manually and get onStartJob(JobParameters job) callback.
Example:
@Override
public boolean onStartJob(JobParameters job) {
Toast.makeText(this, "Job started", Toast.LENGTH_SHORT).show();
new Handler(Looper.getMainLooper()).postDelayed(() -> {
//Do something after 10000ms
jobFinished(job, false);
}, 5000);
return false; // Answers the question: "Is there still work going on?"
}
@Override
public boolean onStopJob(JobParameters job) {
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(500,VibrationEffect.DEFAULT_AMPLITUDE));
}else{
//deprecated in API 26
v.vibrate(500);
}
return false; // Answers the question: "Should this job be retried?"
}
关于android - 在 firebase jobdispatcher 中停止 JobService 内的预定作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51910941/
我建立了一个 Jobservice 来做一些事情。出于测试目的,我让它每三十秒运行一次。为了找到问题,我将服务减少到什么都不做(!)。我知道,系统可以停止工作;如果 onStopJob 方法返回 tr
JobService只运行一次就可以立即运行吗? 我目前正在测试 JobService,我使用以下代码 JobScheduler jobScheduler = getSyste
MyActivity.java JobInfo jobInfo = new JobInfo.Builder(jobId, new ComponentName(getApplic
我有一个小问题,在某些设备上,我的没有背景的通知有时不会在 android O 上触发(特别是在小米上)。我正在使用从 BroadcastReceiver 接收数据的 Awareness API。所以
我在 Android 中实现了一个应用程序,它使用 JobService 检查更新。我已经在一些设备上对其进行了测试:Samsung J3、RedMi 5+、RedMi note pro、MI A2
我知道 Service 类中有一个有趣的 stopSelf() 可以停止自身,在 JobService() 中也有同样有趣的做法吗? 代码 class RestoreService : JobServ
我正在创建一个 sleep 定时器应用程序,它会随着时间的流逝逐渐降低系统音量。如果用户将时间设置为 30 分钟,则音量将在 15 分钟和 7.5 分钟等处减小。 我目前将音量衰减发送到 JobSer
我想让 JobScheduler 安排一个作业在 5 分钟后运行,然后它会继续每 3 分钟运行一次。如何安排初始延迟的工作? 我当前的代码: JobInfo.Builder builder = new
目前我正在使用一个应用程序,我的应用程序有一个功能,用户可以点击导航按钮,我的应用程序将启动谷歌地图。到现在为止都很好,我已经做到了。但我被卡住的事实是我希望我的应用程序执行一些任务。为了实现这一点,
我正在玩 Android 并编写一个包含 Activity 和服务的小应用程序。该 Activity 在单击按钮时启动服务,它应该从 URI 中获取一些数据并将其作为结果返回。有时,数据不可用或不符合
https://developer.android.com/reference/android/app/job/JobService.html 我正在实现一个 Android JobService,但
我们最近将主应用程序类转换为 Kotlin。 从那以后,我们遇到了崩溃,尤其是在夜间(当我们的应用程序可能被系统杀死时),当我们的 JobService 启动时。 我们正在以静态方式访问应用程序上下文
作为测试,我从我们拥有的工作服务中删除了“startForeground(通知)”,它似乎仍在工作。 我们是否不需要在 Android O 及更高版本上发布工作服务的前台通知? 我无法找到这方面的具体
我的问题是,当我使用以下方法从 Controller 执行作业时: def startScheduler(){ Scheduler scheduler = new StdSchedul
我需要做一些后台更新(大约每 1 分钟)。我必须使用 JobService 定期执行此操作。但是我不需要在应用程序关闭时运行服务 - 仅当应用程序正在运行时(在前台)。 有办法吗? 最佳答案 为此您不
在 JobService 上调用 stopSelf(startId) 或 stopSelfResult(startId) 有什么影响。是的,我可以调用 jobFinished。但请原谅我。会发生什么?
我正在尝试更新我的简单 Android 应用程序以使用 Dagger2。我想我已经成功地理解了一些基础知识,并且基本的东西( Activity 、 View 模型、助手)是通过它创建的。 现在,还有一
我使用 com.firebase.jobdispatcher.JobService为了同步数据,我通过安排 Job 来启动它使用 FirebaseJobDispatcher . 问题:我不喜欢它在我的
安排通知: FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this)); Job
在 Android 应用程序上工作时,我使用 FirebaseJobDispatcher 每 1 分钟运行一次作业。 问题 只要我运行应用程序,作业就会执行,然后每 1 分钟执行一次。 问题 为什么在
我是一名优秀的程序员,十分优秀!