用于存储到数据库中的 AsyncTask 或服务或线程
AsyncTask or service or thread for storing into data base
说,我有 10k 数据需要存储在数据库中(我估计这最多需要一分钟)但是 UI.
不需要这些数据
最好的存储方式是什么?使用异步任务?服务?还是线程?
如果我使用 asyncTask / threads,即使 activity 关闭,它们还会保持“活动”状态一分钟吗?
JobIntentService
可能是最佳选择。它与 activity 无关,不会被 activity.
破坏
使用方法:
- 清单,
<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());
说,我有 10k 数据需要存储在数据库中(我估计这最多需要一分钟)但是 UI.
不需要这些数据最好的存储方式是什么?使用异步任务?服务?还是线程?
如果我使用 asyncTask / threads,即使 activity 关闭,它们还会保持“活动”状态一分钟吗?
JobIntentService
可能是最佳选择。它与 activity 无关,不会被 activity.
使用方法:
- 清单,
<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());