android - androidstudio 服务在 Androidx 中不工作
问题描述
活动代码
JobScheduler scheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
ComponentName componentName = new ComponentName(this, EJobService.class);
JobInfo info = new JobInfo.Builder(123, componentName)
.setRequiresCharging(true)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
.setPersisted(true)
.setPeriodic(5*1000,500)
.build();
int resultCode = scheduler.schedule(info);
if (resultCode == JobScheduler.RESULT_SUCCESS) {
Log.d("Job Started", "Job scheduled");
} else {
Log.d("Tag", "Job scheduling failed");
}
服务代码
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class EJobService extends JobService {
private static final String TAG = "EJobService";
private boolean jobCancelled = false;
@Override
public boolean onStartJob(JobParameters params) {
getLocation();
return true;
}
private void doBackgroundWork(final JobParameters params) {
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
Log.d(TAG, "run: " + i);
if (jobCancelled) {
return;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Log.d(TAG, "Job finished");
jobFinished(params, false);
}
}).start();
}
@Override
public boolean onStopJob(JobParameters params) {
Log.d(TAG, "Job cancelled before completion");
jobCancelled = true;
return true;
}
public void getLocation() {
LocationManager locationManager = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
try {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 5, this);
} catch (SecurityException e) {
e.printStackTrace();
}
}
AndroidManifest.Xml
<service
android:name=".EJobService"
android:permission="android.permission.BIND_JOB_SERVICE" />
我正在将此代码用于作业调度程序服务,但问题是服务没有运行,请告诉我有什么问题。我在奥利奥版本中使用过这个,它工作正常,所以请告诉我有什么问题。
获取位置();崩溃的应用程序
解决方案
您的代码运行良好,只需在控制台中检查输出即可。
推荐阅读
- docker - docker run -p 3000:3000 d9a82c31eab5 not working
- python - 使用单独的线程创建对象
- select - 启用多选时如何从 svelte-select 组件中获取所有值
- swift - 如何使用 Core NFC 和 Swift UI 连接异步数据获取?
- c# - C#根据彩色图像创建渐变
- python - 使用 VSCode 的 OpenCV for python 运行停止在 'cv2.VideoCapture(0)' 但没有给出错误
- macos - 如何在 VS Code 的终端中重新绑定键盘快捷键?
- node.js - 是否可以在 Express ReactJS 应用程序中同时使用 res.sendFile() 和 res.redirect() ?
- feature-extraction - 在 PCL 中查找法线的 NormalEstimation 问题
- python - 如何从 App Engine 将图像上传到 Google Cloud Storage