gpt4 book ai didi

java - 每当应用程序在 android pie 中被杀死时,服务也会被杀死

转载 作者:行者123 更新时间:2023-11-30 10:02:29 25 4
gpt4 key购买 nike

我正在通过创建 Android 应用来学习 Android 编程。但是每当我杀死应用程序服务时,它也会被杀死。我正在使用 JobIntentService。使该应用程序在后台运行。

JobIntentService 类

public class BackGroundDistanceCalculate extends JobIntentService {

final public static String TAG = "BackGroundDistance";

static void enqueueWork(Context context, Intent job) {
enqueueWork(context, BackGroundDistanceCalculate.class, 1, job);
}

@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "Service Start");
}

@Override
protected void onHandleWork(@NonNull Intent intent) {
Log.d(TAG, "Execution Started");

int i=0;

for(i=0; i<1000; i++) {
SystemClock.sleep(1000);
}
}

@Override
public boolean onStopCurrentWork() {
Log.d(TAG,"Now It's Stopped");
return super.onStopCurrentWork();
}

@Override
public void onDestroy() {
Log.d(TAG,"Now It's Destroyed");
super.onDestroy();
}
}

主 Activity

Intent backCheck = new Intent(MapsActivity.this, BackGroundDistanceCalculate.class);
BackGroundDistanceCalculate.enqueueWork(this, backCheck);

创建此 Intent 以在 onCreateMethod 中启动 Activity

list

<uses-permission android:name="android.permission.WAKE_LOCK"/>
<service
android:name=".BackGroundDistanceCalculate"
android:permission="android.permission.BIND_JOB_SERVICE" />

我可以做哪些更改来使服务即使在应用程序被终止时也能成功运行?提前致谢。

最佳答案

好吧,你需要将你的服务迁移到前台服务或至少显示一个持续的通知,因为从 android 8.0 开始,应用程序无法在不让用户知道的情况下运行后台服务。不过,如果你想在没有通知的情况下进行,一种方法是迁移您对无障碍服务的服务Create accessibility service .如果你想制作一个,你可以引用这个链接。

关于java - 每当应用程序在 android pie 中被杀死时,服务也会被杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56927403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com