0

Android アプリの実装をガイドする本を読んでいます。そこでは、データベースから csv ファイルにデータをエクスポートする方法が示されています。コンセプトは次のとおりです。

  1. アクティビティ ( ) の ActionBar にメニューを追加します。このメニューにはListDataActivity、RecyclerView でエクスポートするデータが表示されます。

  2. メニューのonOptionsItemSelectedメソッドをオーバーライドして、ユーザーがアプリに外部ストレージへの書き込み権限を付与しているかどうかを最初に確認します。その場合、次のようにexportAsCsv()呼び出されます。

    private void exportAsCsV() {
         Intent exportService = new Intent(this, ExportService.class);
         startService(exportService);
     }
    
  3. 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か?

4

0 に答える 0