miui rom的后台服务已停止

时间:2017-01-29 06:11:14

标签: android android-service

我正在开发后台服务,在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>

1 个答案:

答案 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();
}