Android アプリの実装をガイドする本を読んでいます。そこでは、データベースから csv ファイルにデータをエクスポートする方法が示されています。コンセプトは次のとおりです。
アクティビティ ( ) の ActionBar にメニューを追加します。このメニューには
ListDataActivity
、RecyclerView でエクスポートするデータが表示されます。メニューの
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
か?