我在现场使用JSON做一些处于睡眠模式
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {
public void run() {
notif();
}
}, 0, 60, TimeUnit.SECONDS);
但这种检查并不在睡眠模式下工作,检查新邮件。比有可能取代?
我在现场使用JSON做一些处于睡眠模式
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {
public void run() {
notif();
}
}, 0, 60, TimeUnit.SECONDS);
但这种检查并不在睡眠模式下工作,检查新邮件。比有可能取代?
如果您的minSdkVersion
为21或更高,请使用JobScheduler
。
如果您的minSdkVersion
低于21,并且由于其他原因而使用Play Services SDK,use firebase-job-dispatcher
。
如果您minSdkVersion
低于21,你宁愿不被捆绑到使用Play服务SDK,use Evernote's android-job
library,它采用JobScheduler
在那里可以和缓慢下降到AlarmManager
它不能。
请注意,Android 6.0+上的打盹模式和应用程序待机将阻止您执行定期工作,除非设备定义的“空闲维护时段”可能每隔几小时进行一次。
您可以在the documentation了解更多关于计划工作的信息。
对不起,我刚开始使用android。我如何知道minSdkVersion? –
就您现在的情况而言,如果您使用的是Android Studio,并且有典型的Android Studio项目,请查看'app/build.gradle',在那里您会找到一个'minSdkVersion'行。或者,进入文件>项目结构,点击左边列表中的模块,点击Flavors选项卡,然后查看“Min Sdk Version”下拉列表。但是,更重要的是,您需要**根据您要支持的Android操作系统版本选择** minSdkVersion。请参阅[文档](https://developer.android.com/studio/publish/versioning.html)。 – CommonsWare
minSdkVersion 19 –
每分钟做一次网络I/O对电池来说是非常糟糕的。您是否计划切换到FCM进行推送消息传递?或者,你打算减少频率(例如每小时一次)吗?或者,您是否允许用户选择频率,以便用户可以根据您的应用调整电池使用量? – CommonsWare
我会每小时进行一次检查。 1分钟 - 本测试期间 –