Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置android服务的优先级?_Android_Android Activity_Android Service - Fatal编程技术网

如何设置android服务的优先级?

如何设置android服务的优先级?,android,android-activity,android-service,Android,Android Activity,Android Service,有没有办法设置android服务的优先级?我想在销毁应用程序的主要活动后在后台运行该服务。因此,我将从我的服务中返回“启动\重新交付\意图”。但重新启动服务需要一些时间(大约1-3分钟)。我想立即重新启动服务。有没有办法设置android服务的优先级 仅供参考,我正在使用startService创建服务,并通过intent.putExtra()传递一个对象 下面的快照取自我的android设备设置/应用程序/运行的应用程序,显示应用程序正在重新启动。。。我的应用程序是实时特定的,所以我想立即重新

有没有办法设置android服务的优先级?我想在销毁应用程序的主要活动后在后台运行该服务。因此,我将从我的服务中返回“启动\重新交付\意图”。但重新启动服务需要一些时间(大约1-3分钟)。我想立即重新启动服务。有没有办法设置android服务的优先级

仅供参考,我正在使用startService创建服务,并通过intent.putExtra()传递一个对象

下面的快照取自我的android设备设置/应用程序/运行的应用程序,显示应用程序正在重新启动。。。我的应用程序是实时特定的,所以我想立即重新启动它


在这种情况下,增加服务优先级的唯一方法是使其成为一个应用程序。

优先级取决于组件类型和用户正在使用的当前应用程序。最高优先级具有当前显示给用户和所有人的
活动。前台服务必须有一个不能取消的通知。要创建前台服务,必须从
服务本身调用
startForeground(…)
方法,传递通知id和
通知对象本身。如果以后要更新通知,可以使用该id


我建议您创建并将您的活动绑定到服务。这样,您就可以在
onResume
onPause
方法中启动和停止服务。

您无法控制
服务的此行为,因为它取决于操作系统和可用资源。但是,对于持续运行的后台服务,我建议您返回
START\u STICKY
,它会在服务因任何原因被破坏后尽最大努力重新运行该服务。

您检查过了吗?但我需要向我的服务传递一个对象,这是传递以前传递的意图的唯一可能方式(在desroying主活动期间)是“开始重新提交意图”(据我所知)…还有其他解决方案吗?其他方法是使用可序列化和写入对象状态,但我的对象属于“BluetoothDevice”类我无法序列化…唯一的序列化方法是保存设备地址和设备名称,并在重新启动时搜索和匹配它…因此会有很多同步问题和时间限制…我正在寻找一些更简单的方法…如果您事先有?Thanx:)BluetoothDevice实现了Parcelable,因此,您可以将其数据封送到字节中,并可以在重建后重新使用它。然而,在处理BluetoothDevice时,您可以简单地保留地址和名称——正如您所说的那样。有时候,对于我们忽略的问题,有一些简单的解决方案。是的,我做到了!!!我在我的服务中返回了“START_STICKY”,因此它会立即重新启动(我实际上希望如此)。。。我使用filehandling将设备地址保存到文件中,并在重新启动服务时从文件中检索它。。。重新设置我检查的服务,如果意图为空。。。代码运行良好。。。为了从设备地址(字符串形式)生成BluetoothDevice对象,我使用了“device=myBluetoothAdapter.getRemoteDevice(设备地址);”