我正在开发后台服务,在OnDestroy方法中,我已经打算再次启动我的服务。我没有在miui rom(小米手机和华为手机)上重新开始。
我该如何处理?
public class NotificationsService extends Service {
@Override
public void onCreate() {
ApplicationLoader.postInitApplication();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
public void onDestroy() {
Intent intent = new Intent("example.app.start");
sendBroadcast(intent);
}
}
在清单中:
<receiver android:name=".AppStartReceiver" android:enabled="true">
<intent-filter>
<action android:name="example.app.start" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
答案 0 :(得分:4)
小米没有新功能,因为小米有一项名为app permission的功能,用户必须允许该应用自动启动(服务)。
像这样,让你的应用程序自动启动:
Settings > permissions > Autostart
或者,
请勿尝试在Service
内重新启动onDestroy()
,而是在START_STICKY
方法中使用onStartCommand(Intent intent, int flags, int startId)
。
您再次发送广播没有启动服务,请正确使用onDestroy
:
@Override
public void onDestroy() {
Intent intent = new Intent("example.app.start");
sendBroadcast(intent);
super.onDestroy();
}