我是android的新手,我正在一个项目中工作。
我需要的是编写一个启动接收器,当android系统通知时应该启动一个进程。此过程通过调用部署在服务器中的restful服务获取服务器日期时间并更新表的两列。
这个过程应该每秒都打勾,我应该确保这个过程一直在运行,并且android系统不应该杀死这个过程,如果它被强行杀死它应该再次重启。
我怎样才能完成它?你能提供一些指导吗?我知道如何使用一个宁静的服务,我也可以写一个启动接收器。我唯一感到困惑的是,只要android系统启动,如何确保进程始终运行。
答案 0 :(得分:0)
只要android系统启动就确保进程始终在运行
没有办法做到这一点。系统可以在发现好主意时终止您的应用。在大多数情况下,您将重新启动。在永远在线服务中使用RESTful服务似乎不是一个好主意。考虑使用推送消息(即GCM)作为应用程序的触发器
答案 1 :(得分:0)
只有接收者不能,服务可以连续运行。所以使用一个将连续运行的服务。然后从广播接收器启动服务。
答案 2 :(得分:0)
要防止您的服务被杀,唯一的方法是在前台启动它。但是使用这种方法,您必须定义一个通知,该通知将在您的服务停止之前显示。
在你的onStartCommand方法中这样做。
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setAutoCancel(false)
.setContentTitle(getResources().getString(R.string.app_name))
.setContentText(getResources().getString(R.string.foreground_not_text))
.setSmallIcon(R.drawable.ic_launcher)
.setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this, LauncherActivity.class), PendingIntent.FLAG_UPDATE_CURRENT));
not = builder.build();
startForeground(Constants.NETWORK_NOT_ID, not);
return Service.START_STICKY;
您的应用程序仍然可以被系统杀死,但不会是第一个被关闭的应用程序。