Java ScheduledExecutorService android不';我不能在靴子上工作
我想在启动时启动一个Java ScheduledExecutorService android不';我不能在靴子上工作,java,android,Java,Android,我想在启动时启动一个ScheduledExecutorService,以便全天检查我的数据库。 我应该在启动时启动此服务,因为如果用户不启动应用程序,此服务将无法工作 因此,当我启动我的ScheduledExecutorService应用程序启动时,一切正常,但在启动时ScheduledExecutorService似乎不起作用 启动时的BroadcastReceive正在工作 这是我的密码 public class BootReceiver extends BroadcastReceiver
ScheduledExecutorService
,以便全天检查我的数据库。
我应该在启动时启动此服务,因为如果用户不启动应用程序,此服务将无法工作
因此,当我启动我的ScheduledExecutorService
应用程序启动时,一切正常,但在启动时ScheduledExecutorService
似乎不起作用
启动时的BroadcastReceive
正在工作
这是我的密码
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
Toast.makeText(context, "Ca passe", Toast.LENGTH_LONG).show();
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleAtFixedRate(new Runnable() {
public void run() {
Log.e("sc", "Ca passe");
Toast.makeText(context,"scheduler fonctionne", Toast.LENGTH_LONG).show();;
}
},10, 10, TimeUnit.SECONDS);
}
}
你有什么想法吗?你需要阅读文档。特别是关于生命周期的文档: BroadcastReceiver对象仅在onReceive调用期间有效(上下文、意图)。一旦代码从此函数返回,系统将认为对象已完成且不再处于活动状态 这对onReceive(Context,Intent)实现中的操作有重要影响:任何需要异步操作的操作都不可用,因为您需要从函数返回来处理异步操作,但此时BroadcastReceiver不再处于活动状态,因此系统可以在异步操作完成之前终止其进程 特别是,您可能无法从BroadcastReceiver中显示对话框或绑定到服务。对于前者,您应该改用NotificationManager API。对于后者,可以使用Context.startService()向服务发送命令 如果您需要使用执行器,请将其托管在实际的Android中。否则,考虑使用唤醒您的<代码>服务> >