我用Android BLE(蓝牙低能)开发了一个应用程序,它工作得很好,但当Android需要更多内存时,我的服务就被干掉了。
>
我正在使用具有单独进程的前台服务。
<接收器Android:name=“.BluetoOthleservice$MyReceiver”/>
startService(new Intent(this, BluetoothLeService.class));
为我效劳:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
SetNotification(0);
return START_STICKY;
}
但当我的服务被操作系统杀死时,它就不会重新启动。我已经尝试关闭所有最近的应用程序,但没有得到任何解决方案....
对此有什么解决办法吗?请帮帮我.任何帮助都将不胜感激。提前谢谢你。
...
startService(new Intent(this, BluetoothLeService.class));
@Override
public void onDestroy() {
unregisterReceiver(mReceiver); // receiver for bt on and bt off
super.onDestroy();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
SetNotification(0);
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
public void SetNotification(int VerdeRosso){
if (VerdeRosso == 1) { // connected
remoteViews = new RemoteViews(getPackageName(), R.layout.notification_connesso);
}else {
remoteViews = new RemoteViews(getPackageName(), R.layout.notification_disconnesso);
}
mBuilder = new NotificationCompat.Builder(getApplicationContext());
mBuilder.setContent(remoteViews);
mBuilder.setSmallIcon(R.mipmap.ic_launcher);
startForeground(123, mBuilder.build()); // 123 è l'id a caso
}
@Override
public void onCreate() {
mBluetoothManager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE);
mBluetoothAdapter = mBluetoothManager.getAdapter();
//broadcaster = LocalBroadcastManager.getInstance(this);
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
mReceiver = new MyReceiver();
registerReceiver(mReceiver, filter);
scanLeDevice(true);
}
---编辑2
private final IBinder myBinder = new LocalBinder();
public class LocalBinder extends Binder {
BluetoothLeService getService() {
return BluetoothLeService.this;
}
}
....
@Override
public IBinder onBind(Intent intent) {
return myBinder;
}
您可以通过以下方式检查服务何时被终止并重新启动:
@Override
public void onLowMemory() {
//Send broadcast to the Activity to kill this service and restart it.
super.onLowMemory();
}
@Override
public void onTaskRemoved(Intent rootIntent)
{
//Send broadcast to the Activity to restart the service
super.onDestroy();
}
你可以做两个广播或只有一个以上这些。
我正在构建一个应用程序来检测Android上的iBeacons。基本功能是通过信标将广告数据存储到设备上,并将其上传到服务器。为此,我正在使用Android信标库。 当应用程序在非活动约30分钟后进入区域时发生的事件序列 首先,在didExit(图像) 之后重新启动,在这里您可以看到从区域11切换到区域9。中途应用程序关闭并立即重新触发,但没有发送推送 在第二个didExit(Image) 后退出
我们在Android8.1及以上版本中偶然发现了一个我们以前从未见过的问题,不幸的是,这使得我们的应用程序对我们的用户来说不太方便。在Android 8.1及以上版本中,当用户刷屏杀死应用程序时,后台粘性服务不会重新启动。
我创建了一个跟踪设备移动位置的服务。服务由绑定到它的活动启动,在该活动中有一个“开始跟踪”按钮。当按下这个按钮时,我需要服务在前台启动,这样它就可以存储设备移动到的位置,即使与它绑定的活动已经关闭,或者应用程序被最小化。 以下是我的服务:
问题内容: 我已经从http://jenkins-ci.org/content/thank-you-downloading-windows- installer 下载了“ jenkins-1.501.zip” 。 我已经解压缩了zip文件,并在Windows 7上成功安装了Jenkins。詹金斯的表现不错。我想从控制台停止Jenkins服务。我怎样才能做到这一点?通过控制台/命令行启动和重新启动的
请原谅我没有经验,我对此很陌生。今天早些时候我在数字海洋上为我的世界设置了一个服务器。我运行命令,用java-xmx1024m-xms1024m-jar minecraft_server.1.15.2.jar nogui创建世界,并创建了一个屏幕。它使我能够访问控制台,在那里我可以键入类似/op和其他命令。后来,我关闭了,现在当我试图重新加入时,我不知道如何回到控制台。我有超过1人在服务器上,谁是
当我的应用程序前台服务被终止时,不会收到FCM通知,更清楚的是,我正试图让我的应用程序始终在后台运行,我使用前台服务来实现这一点,有时应用程序未被ANDROID系统终止,前台通知会出现15个多小时,但其他情况下,当我的前台通知被终止,并且我发送FCM通知时,它在1小时或更短时间内被终止,而我的设备没有收到FCM通知!!这里有什么问题!我怎样才能解决它!