标题可能看似重复,但问题不是关于如何发出请求,我在使用服务指定间隔后从我的Android应用程序向Web服务器发送HTTP Get请求,问题是它在我执行后停止设备上的任何其他操作,如播放视频。该服务看起来像
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
final Context ctx=this;
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//perform GET here
}, 0, 5000);
return Service.START_STICKY;
}
任何想法为什么即使我返回Service.START_STICKY
问候。
答案 0 :(得分:1)
尝试在'前景'中运行您的服务。这样就不太可能被杀死。
退房:http://developer.android.com/guide/components/services.html#Foreground
答案 1 :(得分:1)
正如评论中所述,您可以采用 PendingIntents 和 BroadcastReceiver 的方法,您可以在指定的时间保留待处理的意图并注册接收方,并且在接收时您可以执行操作,无论是启动服务还是点击werbservice。
请完成http://code.tutsplus.com/tutorials/android-fundamentals-scheduling-recurring-tasks--mobile-5788 还http://www.sitepoint.com/scheduling-background-tasks-android/以便更好地理解