2

ジョブスケジューラを呼び出すアクティビティに静的メソッドを作成しましたが、ジョブディスパッチャーはジョブをディスパッチしません。助けてください。

クラス Add.java のメソッド

public void add_details(String namel,String descl,String timel)
{
    add_job(timel);

}
synchronized public void add_job(String time)
{     
    Driver driver = new GooglePlayDriver(Add.this);
    FirebaseJobDispatcher firebaseJobDispatcher = new FirebaseJobDispatcher(driver);
    Job job = firebaseJobDispatcher.newJobBuilder()
                .setService(Addition_job.class)
                .setTag(JOB_TAG)
                .setRecurring(true)
                .setTrigger(Trigger.executionWindow(5,30))
                .build();
    firebaseJobDispatcher.mustSchedule(job);
}

Addition_job.class

public class Addition_job extends JobService{
private AsyncTask Task;
@Override
public boolean onStartJob(JobParameters job) {
    Task=new AsyncTask() {
        @Override
        protected Object doInBackground(Object[] params) {
            Context context=Addition_job.this;
            Decision.notify_user(context);
            return null;
        }
    };
    return true;
}

@Override
public boolean onStopJob(JobParameters job) {
    if (Task != null) Task.cancel(true);
    return true;
}
}

Decision.java notifiy_user メソッド

public static void notify_user(Context context)
{
    if(context!=null)
        Toast.makeText(context,"notified:",Toast.LENGTH_SHORT).show();
}

マニフェストでサービスを指定し、export=falseと も使用しましたaction_Execute

4

1 に答える 1