我的申请中有意向服务。当我的应用程序启动时,它成功运行了服务类,它运行良好(将数据从蓝牙存储在sqlite
数据库中)。意图服务仅适用于我的应用程序,不会被其他应用程序使用。
但是,当应用程序长时间处于非活动状态时,服务有时会停止运行。我希望我的服务可靠地继续运行 - 这就是我创建服务的原因。我还希望服务在手机启动时自动启动(它不会启动)。
当我转到settings -> applications -> running services
时,我的服务没有列在那里。
以下是我的清单文件的相关部分:
<service android:enabled="true" android:name=".MyHxMService" android:exported="false">
<intent-filter>
<action
android:name="org.xxxxx.MyHxMService" />
</intent-filter>
</service>
<receiver android:name="MyStartupIntentReceiver">
<intent-filter>
<action
android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
</application>
这是我的意向服务类声明:
public class MyHxMService extends IntentService {
这是我的 MyStartupIntentReceiver :
package com.NewApp;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyStartupIntentReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent();
serviceIntent.setAction("org.xxxxx.MyHxMService");
context.startService(serviceIntent);
}
}
答案 0 :(得分:1)
以
开始MyHxMService
服务
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent(context,org.xxxxx.MyHxMService.class);
context.startService(serviceIntent);
}
答案 1 :(得分:0)
终止服务:IntentService
的设计与AsyncTask
类似,只要工作完成就会停止。如果您需要其他行为,请考虑扩展Service
类本身。此外,从START_STICKY
类onStartCommand()
返回Service
告诉android保持活着,除非明确停止。
启动时启动:您已经设置了BOOT_COMPLETED IntentReciever,只需使用正确的Context和Component Class创建Intent,如其他答案所示。