如何使用JobScheduler显示吐司消息

问题描述 投票:1回答:1

我一直在Andorid学习JobScheduler。我试图每隔1分钟在onstartjob()中显示一个吐司消息。但是它没有出现。任何帮助将不胜感激。

jobschedul_service .class:

package com.prajwal.jobscheduler;

import android.app.Service;
import android.app.job.JobParameters;
import android.app.job.JobScheduler;
import android.app.job.JobService;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class jobschedul_service extends JobService {

    @Override
    public boolean onStartJob(JobParameters jobParameters) {

        Toast.makeText(getApplicationContext(), "After 15 minutes", Toast.LENGTH_SHORT).show();
        return false;
    }

    @Override
    public boolean onStopJob(JobParameters jobParameters) {
        return true;
    }
}

MainActivity.class:

package com.prajwal.jobscheduler;

import androidx.appcompat.app.AppCompatActivity;

import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
import android.content.Context;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    private static final int LOAD_ARTWORK_JOB_ID = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        JobScheduler jobScheduler =
                (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
        jobScheduler.schedule(new JobInfo.Builder
                (LOAD_ARTWORK_JOB_ID, new ComponentName(this, jobschedul_service.class))
                .setPeriodic(900000)
                .build());
    }
}

Manifest.xml:

  <service
        android:name=".jobschedul_service"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.BIND_JOB_SERVICE"></service>
java android service android-jobscheduler
1个回答
0
投票

得到答案!

原因是定点(长间隔)

根据以下ss:enter image description here

此功能是在API 21(即Lolipop版本)中添加的。而我在版本> Lolipop上运行该应用程序。

而下图中的新功能:enter image description here

已在API 24中添加,即牛轧糖

因此,如果您将应用定位到牛轧糖以下,即 = Lolipop,则使用setPeriodic(长间隔)方法,而如果您定位> =牛轧糖,则使用setPeriodic(长间隔,长弹性间隔)。

解决方案>>

 if(Build.VERSION.SDK_INT > Build.VERSION_CODES.N)
        {
            builder.setPeriodic(900000,6000);
        }
        else 
        {
            builder.setPeriodic(900000);
        }
© www.soinside.com 2019 - 2024. All rights reserved.