Android 在睡眠模式下做某事

Android 在睡眠模式下做某事,android,Android,我使用JSON检查站点中的新消息 Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() { public void run() { notif(); } }, 0, 60, TimeUnit.SECONDS); 但该检查在睡眠模式下不起作用。如果您的minSdkVers

我使用JSON检查站点中的新消息

Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {

public void run() {
                notif();              
                }

             }, 0, 60, TimeUnit.SECONDS);

但该检查在睡眠模式下不起作用。如果您的
minSdkVersion
为21或更高版本,请使用
JobScheduler


如果您的
minSdkVersion
低于21,并且您因其他原因被绑定到使用Play Services SDK


如果您的
minSdkVersion
低于21,并且您不希望被束缚在Play Services SDK的使用中,该SDK可以使用
JobScheduler
,也可以优雅地降级为
AlarmManager

请记住,在Android 6.0+上,打盹模式和应用程序待机将阻止您进行定期工作,但在设备定义的“空闲维护窗口”期间除外,该窗口可能每隔几个小时一次


您可以在中阅读有关计划工作的更多信息。

每分钟进行网络I/O对电池非常有害。您是否计划切换到FCM进行推送消息传递?或者,您是否计划降低频率(例如,每小时一次)?或者,您是否允许用户选择频率,以便用户可以定制与您的应用程序相关的电池使用量?我将每小时进行一次检查。1分钟-这个测试周期很抱歉,我刚刚开始使用android。我怎么知道minSdkVersion?根据您目前的情况,如果您使用的是Android Studio,并且有一个典型的Android Studio项目,请查看
app/build.gradle
,在那里您会找到一行
minSdkVersion
。或者,进入File>Project Structure,单击左侧列表中的模块,单击Flavors选项卡,然后查看“Min Sdk版本”下拉列表。但是,更重要的是,您需要根据您希望支持的Android操作系统版本选择一个
minSdkVersion
。看见