【问题标题】:AsyncTask or service or thread for storing into data base用于存储到数据库中的 AsyncTask 或服务或线程
【发布时间】:2021-04-27 13:58:40
【问题描述】:

比如说,我有 10k 数据需要存储在数据库中(我估计这最多需要一分钟),但 UI 不需要这些数据。

存储它的最佳方式是什么?使用异步任务?服务?还是线程?

如果我要使用 asyncTask / 线程,即使活动已关闭,它们是否仍会保持“活动”一分钟?

【问题讨论】:

    标签: java android multithreading service android-asynctask


    【解决方案1】:

    JobIntentService 可能是您的选择。它与活动无关,不会被活动破坏。

    使用方法:

    1. 清单,
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    
    <service android:name=".YourService" android:permission="android.permission.BIND_JOB_SERVICE" />
    
    1. 创建服务:
    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
        }
    
    }
    
    1. 在某处开始工作: YourService.enqueueWork(context, new Intent());

    【讨论】:

    • 感谢您的回复。另一个问题,即使应用程序被杀死,JobIntentService 还会运行吗?因为即使活动停止或应用程序被终止,也必须存储数据。或者服务会更适合这个吗?还是两者都没有?
    • @JiwaChhetri,是的,JobIntentService 将在 APP 被杀死的几分钟内被杀死。你的工作需要一分钟,时间看起来就足够了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多