我正在阅读一本指导您实现 Android 应用程序的书。在那里,展示了如何将数据从数据库导出到 csv 文件。概念如下:
我们在activity的ActionBar中添加了一个菜单
ListDataActivity
(我们覆盖菜单的
onOptionsItemSelected
方法首先检查用户是否已授予应用程序写入外部存储的权限。如果是这样,exportAsCsv()
则称为:private void exportAsCsV() { Intent exportService = new Intent(this, ExportService.class); startService(exportService); }
ExportService 类扩展了 IntentService。我们重写该
onHandleIntent
方法。
我的问题是它IntentService
似乎已被弃用。因此,我已将其替换为JobIntentService
并且已替换onHandleIntent
为onHandleWork
. 不幸的是,这不是我要做的全部。我知道我必须通过调用某处来调用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);
}
但这并不能解决问题。有人可以向我解释我做错了什么吗?不enqueueWork
换startIntent
?