在Android中查找我的服务是否正在运行?

时间:2010-12-16 09:32:37

标签: android service android-service

我有服务联系服务器,定期从我的应用程序进行一些数据传输。它的工作正常。

但是当我重新启动(关闭并打开)我的手机时,无法重启服务。所以我的想法是,当用户在重新启动手机后打开我的应用程序时再次启动该服务。为此,我必须知道我的服务是否正在运行?怎么做?

处理这种情况的任何其他想法也值得庆幸。

提前致谢。

3 个答案:

答案 0 :(得分:1)

您需要BroadcastReceiver的实施,该实施适用于BOOT_COMPLETED行动。像这样:

public class OnStartReceiver extends BroadcastReceiver {


  @Override
  public void onReceive(Context context, Intent intent) {
//     your starting service code here
  }

}

此外,您应该将receiver标记添加到清单文件中,android:name =您的完全限定名OnStartReceiver和以BOOT_COMPLETED嵌套的intent-filter标记作为意图名称,如下所示:

<receiver android:name=".onStartReceiver">
   <intent-filter>
      <action android:name="android.intent.action.BOOT_COMPLETED"/>                    
   </intent-filter>

答案 1 :(得分:0)

创建BroadcastReceiver以收听ACTION_BOOT_COMPLETED事件。更多详情here

答案 2 :(得分:0)

AlarmManager用于此类计划任务,因此您的服务无需始终在内存中。正如Ribery先生指出的那样,在电话重启后,使用BroadcastReceiverACTION_BOOT_COMPLETED重新安排任务。