也许我还不了解一些Android概念,但回答以下问题可能会对我有所帮助:
在我的Android应用中,我需要在后台每隔x秒从Web服务获取数据(应用程序似乎无法运行)。
当来自网络服务的数据是我期待的数据时,我需要显示Android通知。
答案 0 :(得分:2)
May I use Android Services?
是。使用IntentService
I need to get data from a web service each x seconds in background
When the data from the web service is the one I am expecting,
I do need to show an Android Notification.
使用BroadcastReceiver和Notifications
How can then load my Application in a concrete activity?
使用Intent从通知
启动活动How can I ensure the background "service" will keep running even if it crashes?
This is, how do I restart that background part or "service" of my application?
您需要修复导致崩溃的原因。否则,每次服务运行时,都可能导致崩溃。 AlarmManager将定期重新启动您的服务。
答案 1 :(得分:2)
在我的Android应用中,我需要从每个x的Web服务获取数据 后台秒(应用程序似乎无法运行)。
我可以使用Android服务吗? http://developer.android.com/reference/android/app/Service.html
是的,您可以使用服务,但问题是您是否希望每隔x秒轮询一次Web服务?你会非常快速地耗尽电池。 您可以做的是安排一个不精确的重复任务(它将在15分钟内被称为APPROXIMATELY,但将与其他应用程序捆绑在一起以降低电池使用量)。请参见AlarmManager.setInexactRepeating()。 或者使用谷歌消息传递(GCM)推送通知,让您的服务器在有新数据时通知并唤醒您的手机。
当来自Web服务的数据是我期待的数据时,我会这样做 需要显示Android通知。然后如何加载我的应用程序 在具体活动中?
您可以从服务中执行这两项操作。服务是一个上下文,因此您可以显示通知,启动活动等...
如何确保后台“服务”即使继续运行也是如此 崩溃?这是,如何重新启动该背景部分或“服务” 我的申请?
您可以在AlarmManager中安排重复的服务启动意图。如果您的服务正在运行,则应该忽略它,如果没有 - 它将启动您的服务。
要确保您的服务不会被系统轻易杀死(例如,当内存不足时),请使用Service.startForeground()并确保从Service.onStartCommand()返回START_STICKY。
答案 2 :(得分:1)
*强调文字*请找到以下答案。
我可以使用Android服务吗? http://developer.android.com/reference/android/app/Service.html
是。您必须使用服务。
当来自网络服务的数据是我期待的数据时,我需要显示Android通知。
当您提供服务时,会从网络服务中找到所需数据,并显示通知
如何在具体活动中加载我的应用程序?
用户点击通知以启动活动
如何确保背景"服务"即使它崩溃也会继续运行?这是,如何重新启动该背景部分或" service"我的申请?
设置定期闹钟以启动和停止服务,这样就不会耗尽电池。
答案 3 :(得分:1)
是的,你是对的..使用服务。获取数据使服务启动应用程序的活动。
关于服务崩溃的问题。编写另一个全局服务,检查数据获取服务是否正在运行。它发现服务停止的那一刻。使监视服务再次重新启动数据获取服务。