FirebaseJobDispatcher不触发

时间:2019-07-02 06:18:01

标签: java android firebase-job-dispatcher

我正在尝试使用Firebase作业调度程序从数据库中读取一个值,但是它没有显示任何内容。

我已经创建了一个服务类

public class RequestService extends JobService {`

BackgroundTask backgroundTask;
static String Key;

@SuppressLint("StaticFieldLeak")
@Override
public boolean onStartJob(final JobParameters job) {

    backgroundTask = new BackgroundTask(){
        @Override
        protected void onPostExecute(String s) {


            Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
            jobFinished(job, false);
        }
    };

    backgroundTask.execute();
    return true;
}

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

public static class BackgroundTask extends AsyncTask<Void, Void, String>{

    @Override
    protected String doInBackground(Void... voids) {

        Query query = FirebaseDatabase.getInstance().getReference().child("Questions").orderByKey().limitToLast(1);

        query.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                HomeConstructor item = dataSnapshot.getValue(HomeConstructor.class);

                Key = item.getKey();
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

        return Key;
    }
}}

我正在使用MainActivity安排工作

jobDispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(getContext()));

    Job job = jobDispatcher.newJobBuilder().setService(RequestService.class).setLifetime(Lifetime.FOREVER).
            setRecurring(true).setTag(TAG).setTrigger(Trigger.executionWindow(10, 15)).
            setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL).setReplaceCurrent(false).setConstraints(Constraint.ON_ANY_NETWORK)
            .build();

    jobDispatcher.mustSchedule(job);

manisfest文件:-

<service android:name=".RequestService">
          <intent-filter>
                 <action android:name="com.firebase.jobdispatcher.ACTION_EXECUTE"/>

         </intent-filter>
</service>

时间间隔设置为10、15,但是我几乎等待了超过一分钟,但仍然没有任何反应。我不确定是什么问题。 任何帮助,将不胜感激。

0 个答案:

没有答案