问题描述
我有一个Messenger应用,并且我的数据库中有一个脱机字段,并且想在用户关闭wifi或移动数据时更新此字段吗?像什么应用程序和电报? 我怎样才能做到这一点?我还使用广播和服务来侦听连接状态的更改,但我无法解决此问题。
解决方法
使用JobService ... 举个例子:
OfflineJob类:
public class OfflineJob extends JobService {
@Override
public boolean onStartJob(JobParameters params) {
//write your code here
Toast.makeText(this,"job started!",Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean onStopJob(JobParameters params) {
return false;
}
}
您的活动:
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
schedulerService();
}
private void schedulerService() {
// Your scheduler service will be called when the network is available.
ComponentName component = new ComponentName(getPackageName(),OfflineJob.class.getName());
JobInfo.Builder builder = new JobInfo.Builder(123,component);
// Set some other constraints
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
// Schedule it
mJobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
mJobScheduler.schedule(builder.build());
}