未创建在单独进程上运行的Android服务

时间:2018-08-10 05:42:36

标签: android background intentservice

我遵循了Intent Service not working in doze mode中radiolondra57所做的步骤,以创建在单独的进程上运行的服务。 我有一个问题,就是在startService之后,永远不会调用此服务的onCreate。这是我的设置:

清单:

    <service
        android:name=".service.Smart113MainService"
        android:enabled="true"
        android:exported="true"
        android:process=":antiDozeProcessName"
        android:label="LocationService">
    </service>

在第一个Activity的onCreate中,此方法称为:(是的,测试电话的版本等于“ O” :))

 private void startServices() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        startService(new Intent(this, Smart113MainService.class));
    } 
 }

服务:

    @Override
public void onCreate() {
    super.onCreate();
    doingSomeStuff();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    startForeground(Smart113NotificationFactory.locationSharingNotificationId, notification.logIntoAppNotification(this).build());
    doingMoreStuff();
    return START_STICKY;
}

这不是我对要发送的Intent设置操作的问题吗?实际上,这是我在代码中唯一能看到的区别。

1 个答案:

答案 0 :(得分:0)

OffsetDateTime

offsetDateTime.atZoneSameInstant(ZoneId.of("Asia/Kolkata")).toOffsetDateTime(); 代码移至if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { startService(new Intent(this, Smart113MainService.class)); } else { startForegroundService(new Intent(this, Smart113MainService.class)); }

startForeground

删除通知onCreate()

@Override
public void onCreate() {
    ...
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        startForeground(NOTIFICATION_ID, notification);
    }
    ...
}

更新

您没有在其他进程中获得调试点,因为您正在从附加调试器中选择主进程。选择正确的进程进行调试。