我有服务联系服务器,定期从我的应用程序进行一些数据传输。它的工作正常。
但是当我重新启动(关闭并打开)我的手机时,无法重启服务。所以我的想法是,当用户在重新启动手机后打开我的应用程序时再次启动该服务。为此,我必须知道我的服务是否正在运行?怎么做?
处理这种情况的任何其他想法也值得庆幸。
提前致谢。
答案 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先生指出的那样,在电话重启后,使用BroadcastReceiver
和ACTION_BOOT_COMPLETED
重新安排任务。