Như Từ căn cứ hỏa lực JobDispatcher Documentation Firebase JobDispatcherTại sao Firebase JobDispatcher chạy JobService 2 lần?
setTrigger(Trigger.executionWindow(0, 60))
// start between 0 and 60 seconds
nhưng tại sao sevice của tôi chạy hai lần
căn cứ hỏa lực JobDispacther Mã
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));
Job job = dispatcher.newJobBuilder()
.setTag("testing job")
.setService(TestingJob.class)
.setReplaceCurrent(true)
.setRecurring(true)
.setTrigger(Trigger.executionWindow(0,1))
.setConstraints(Constraint.ON_ANY_NETWORK)
.setLifetime(Lifetime.FOREVER)
.build();
dispatcher.mustSchedule(job);
kiểm tra lớp (J ob Service)
public class TestingJob extends JobService {
private static final String TAG = "TestingJob";
private int i =0;
@Override
public boolean onStartJob(JobParameters job) {
Log.d(TAG, "onStartJob Testing Job: "+new Date().toString());
Log.d(TAG, "onStartJob: i = "+String.valueOf(i));
i+=1;
return false;
}
@Override
public boolean onStopJob(JobParameters job) {
Log.d(TAG, "onStopJob Testing Job: Stopped");
return false;
}
}
Log Cát
11-28 00:08:57.666 11793-11793: onStartJob Testing Job: Tue Nov 28 00:08:57 GMT+05:00 2017
11-28 00:08:57.666 11793-11793: onStartJob: i = 0
11-28 00:08:57.791 11793-11793: onStartJob Testing Job: Tue Nov 28 00:08:57 GMT+05:00 2017
11-28 00:08:57.791 11793-11793: onStartJob: i = 0
Manifest
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<service android:name=".services.TestingJob"
android:exported="false">
<intent-filter>
<action android:name="com.firebase.jobdispatcher.ACTION_EXECUTE"/>
</intent-filter>
</service>
tôi có thể sử dụng dịch vụ việc làm của tôi lần nữa có nghĩa là int i
sẽ tăng mỗi lần.
Thnx Để được trợ giúp của bạn
Tôi đã đấu tranh với cùng một vấn đề, tuy nhiên, tôi đang sử dụng URI nội dung làm trình kích hoạt. Vấn đề đã xảy ra trên cả hai thiết bị tôi thử nghiệm, nhưng nếu tôi xây dựng ứng dụng trong môi trường mô phỏng, nó chỉ chạy một lần. –