我想做一个服务,这是工作的所有时间和期间的时间。我想做一项服务,即手机被锁定,睡眠,任务永远不会被杀死,我这样做了:
public static void scheduleRepeat(Context context) {
try {
Preferences prefs;
prefs = new Preferences(context);
long maxDiff = prefs.getInteger(Preferences.Key.CFG_USER_POSITION_FREQUENCY);
PeriodicTask periodic = new PeriodicTask.Builder()
.setService(MyTaskService.class)
.setPeriod(maxDiff)
.setFlex(10)
.setTag(GCM_REPEAT_TAG)
.setPersisted(true)
.setUpdateCurrent(true)
.setRequiredNetwork(Task.NETWORK_STATE_ANY)
.setRequiresCharging(false)
.build();
GcmNetworkManager.getInstance(context).schedule(periodic);
Log.v(TAG, "repeating task scheduled");
} catch (Exception e) {
Log.e(TAG, "scheduling failed");
e.printStackTrace();
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);
GcmNetworkManager
.getInstance(getApplicationContext())
.cancelTask(GCM_REPEAT_TAG, MyTaskService.class);
}
@Override
public void onInitializeTasks() {
super.onInitializeTasks();
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public int onRunTask(TaskParams taskParams) {
return GcmNetworkManager.RESULT_SUCCESS;
}但是我在某个地方看到Gcm被弃用了,这个服务会一直正常工作吗?
发布于 2019-03-11 15:50:14
它已被弃用,现在您可以使用Firebase Job Dispatcher
这个库使用Google Play服务内部的调度引擎(以前的GCM Network Manager组件)来提供一个向后兼容(回到Gingerbread)的类似JobScheduler的API.
发布于 2019-03-11 15:51:53
我不是舒尔,您正在尝试做什么,但乍一看,您似乎可以使用Timer类和TimerTask。但是,您也可以尝试使用Handler.postDelayed() (这将在主线程上执行)。
一般来说,许多谷歌API都被Firebase取代了,请访问their official site了解更多信息。
https://stackoverflow.com/questions/55097193
复制相似问题