gpt4 book ai didi

android - 如果应用程序杀死了 android,作业调度程序将停止工作

转载 作者:太空狗 更新时间:2023-10-29 13:52:15 24 4
gpt4 key购买 nike

您好,您在我的应用程序中做了一个 JobScheduler 示例。我是这样启动的

jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName jobService = new ComponentName(getPackageName(),
MyJobService.class.getName());
JobInfo jobInfo = new JobInfo.Builder(MYJOBID, jobService)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setExtras(bundle).build();
jobScheduler.schedule(jobInfo);

然后我在 JobService 中 toast :

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class MyJobService extends JobService {

public MyJobService() {
}

@Override
public boolean onStartJob(JobParameters params) {

// UtilityMethods.showToast(this,params.getExtras().getString("json"));
Toast.makeText(this,"test",Toast.LENGTH_SHORT).show();

return false;
}

@Override
public boolean onStopJob(JobParameters params) {
UtilityMethods.showToast(this,"onStop()");
return false;
}

}

即使我尝试关闭互联网并从后台关闭应用程序,它也能正常工作。然后我尝试在我的一个库中构建类似的东西。我在库中编写了相同的代码,并从我的应用程序的 MainActivity 中调用它。但是这一次,当我从后台终止应用程序时,它停止工作。谁能告诉我为什么?

我的 MainActivity 我在其中初始化它

JobScheduler jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName jobService = new ComponentName(getPackageName(),
MyJobService.class.getName());
JobInfo jobInfo = new JobInfo.Builder(MYJOBID, jobService)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).build();
jobScheduler.schedule(jobInfo);

当我从 onCreate 启动它时它工作,如果我从回调函数 () 启动它则不工作。

非常感谢任何帮助。

最佳答案

Android> 7 自动节省电池电量。您必须启用应用程序的节电停止

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Intent intent = new Intent();
String packageName = getPackageName();
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
startActivity(intent);
}
}

将此添加到 AndroidManifest.xml

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>

关于android - 如果应用程序杀死了 android,作业调度程序将停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45097754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com