繁体   English   中英

每当应用在Android Pie中被杀死时,服务也会被杀死

[英]Service also gets killed whenever App is killed in android pie

我正在通过创建一个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();
    }
}

主要活动

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

创建此意图以在onCreateMethod启动Activity

表现

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

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

使用不可撤销的通知启动前台服务

很好,您需要将服务迁移到前台服务,或至少显示正在进行的通知,因为从android 8.0开始,应用程序无法在不让用户知道的情况下运行后台服务。可访问性服务创建可访问性服务 如果要创建一个链接,可以参考此链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM