蓝牙服务
问题描述:
我想在我的手机和蓝牙卡之间的服务在android中建立连接,但我有一个服务问题。服务半小时后会自动重新启动。我的目标是尽可能保持我的服务运行。蓝牙服务
public void onCreate() {
Log.d("PrinterService", "Service started");
super.onCreate();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("PrinterService", "Onstart Command");
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter != null) {
if(bluetoothProvider != null)
bluetoothProvider = null;
bluetoothProvider = new BluetoothProvider(getApplicationContext());
bluetoothProvider.startUpdates();
}
return Service.START_STICKY ;
}
@Override
public void onDestroy() {
super.onDestroy();
}
答
您应该创建一个粘性服务。
您可以通过在onStartCommand中返回START_STICKY来做到这一点。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("LocalService", "Received start id " + startId + ": " + intent);
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY;
}
另请参阅应用程序:持久性,即“应用程序是否应始终保持运行”。这更麻烦 - 系统会尽量不杀你的应用程序,这会影响系统中的其他人,你应该小心使用它。
谢谢你,我也做了同样的事情,但服务继续做一个自动重新启动半小时后 – user2838231
ü需要使用报警manager.do经过报警经理的教程。 –
,我也试过'android:process =“”'在我的清单中,服务做了一个自动重启 – user2838231