我是 Android 的新手,我想知道执行后台操作的最有效方法,这是一个简单的 POST 请求,带有 JSON Body,它将在固定间隔后被命中。最好的方法是 Intent Service 或 Async Task。
最佳答案
如下创建一个JobScheduler
public static void scheduleJob(Context context) {
ComponentName serviceComponent = new ComponentName(context, TestJobService.class);
JobInfo.Builder builder = new JobInfo.Builder(0, serviceComponent);
builder.setMinimumLatency(1 * 1000); // wait at least
builder.setOverrideDeadline(3 * 1000); // maximum delay
charging or not
JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
jobScheduler.schedule(builder.build());
}
创建以下接收器
public class MyStartServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Util.scheduleJob(context);
}
}
在 Android list 中为 BOOT_COMPLETED
事件注册接收器。
<receiver android:name="MyStartServiceReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
创建一个 JobService 并将您的代码添加到 onStartJob
public class TestJobService extends JobService {
private static final String TAG = "SyncService";
@Override
public boolean onStartJob(JobParameters params) {
Intent service = new Intent(getApplicationContext(), LocalWordService.class);
getApplicationContext().startService(service);
Util.scheduleJob(getApplicationContext()); // reschedule the job
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
return true;
}
}
有关详细信息,请参阅:linkhere
关于android - 在固定间隔后在 android 中从后台执行 REST 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52287302/