0

我正在阅读一本指导您实现 Android 应用程序的书。在那里,展示了如何将数据从数据库导出到 csv 文件。概念如下:

  1. 我们在activity的ActionBar中添加了一个菜单ListDataActivity

  2. 我们覆盖菜单的onOptionsItemSelected方法首先检查用户是否已授予应用程序写入外部存储的权限。如果是这样,exportAsCsv()则称为:

    private void exportAsCsV() {
         Intent exportService = new Intent(this, ExportService.class);
         startService(exportService);
     }
    
  3. ExportService 类扩展了 IntentService。我们重写该onHandleIntent方法。

我的问题是它IntentService似乎已被弃用。因此,我已将其替换为JobIntentService并且已替换onHandleIntentonHandleWork. 不幸的是,这不是我要做的全部。我知道我必须通过调用某处来调用onHandleWork自己。enqueueWork但是,我不知道在哪里打电话enqueueWork。我想可能在里面ListDataActivity,像这样:

private void exportAsCsV() {
    Intent exportService = new Intent(this, ExportService.class);
    ExportService.enqueueWork(this, exportService);
}

当还包括一个静态enqueueWork方法时ExportService

public static void enqueueWork(Context context, Intent work) {
    enqueueWork(context, ExportService.class, 123, work);
}

但这并不能解决问题。有人可以向我解释我做错了什么吗?不enqueueWorkstartIntent

4

0 回答 0