【发布时间】:2021-04-27 13:58:40
【问题描述】:
比如说,我有 10k 数据需要存储在数据库中(我估计这最多需要一分钟),但 UI 不需要这些数据。
存储它的最佳方式是什么?使用异步任务?服务?还是线程?
如果我要使用 asyncTask / 线程,即使活动已关闭,它们是否仍会保持“活动”一分钟?
【问题讨论】:
标签: java android multithreading service android-asynctask
比如说,我有 10k 数据需要存储在数据库中(我估计这最多需要一分钟),但 UI 不需要这些数据。
存储它的最佳方式是什么?使用异步任务?服务?还是线程?
如果我要使用 asyncTask / 线程,即使活动已关闭,它们是否仍会保持“活动”一分钟?
【问题讨论】:
标签: java android multithreading service android-asynctask
JobIntentService 可能是您的选择。它与活动无关,不会被活动破坏。
使用方法:
<uses-permission android:name="android.permission.WAKE_LOCK" />
<service android:name=".YourService" android:permission="android.permission.BIND_JOB_SERVICE" />
public class YourService extends JobIntentService {
public static final int JOB_ID = 1;
public static void enqueueWork(Context context, Intent work) {
enqueueWork(context, YourService.class, JOB_ID, work);
}
@Override
protected void onHandleWork(@NonNull Intent intent) {
// Your jobs are here
}
}
YourService.enqueueWork(context, new Intent());
【讨论】: