問題タブ [android-jobscheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
12698 参照

android - Android JobScheduling - ジョブにオブジェクトを渡す必要がありますが、どうすればよいですか?

アプリで Android の新しい JobScheduler を使用したいのですがbyte、ジョブによってネットワーク経由で送信されるデータ (配列) を含むオブジェクトを渡す方法がわかりません。私は答えを探しましたが、これまでのところ何も見つかりませんでした。

JobService があります。

...次のようなジョブを構築しています:

OtherClass.addJobInBackground(ジョブ);

...そして、ジョブをスケジュールしています:

すっごい… MyJob のメソッドを直接呼び出すことはできませんよね?次に、オブジェクトをジョブに渡すために使用できると考えましたが、バンドルのようなシリアル化されたオブジェクトを取らない.setExtras(bundle)a のみを使用できることがわかりました。キーと値の設定は機能しません。これは、などPersistableBundleしか配置できず、必要なものではないためです。booleans, ints, stringsbyte[]

誰にもアイデアはありますか?私はかなり立ち往生しています。

よろしくお願いします。

PS: 申し訳ありませんが、おそらく適切なコード タグを使用していない場合。

0 投票する
1 に答える
726 参照

android - OneOffTask の setUpdateCurrent の明確化

GcmNetworkManager ツールの OneoffTask の setTag と setUpdateCurrent の動作に頭を悩ませようとしています。
setUpdateCurrent のドキュメントには、次のように書かれています。

このタスクが同じタグを持つ既存のタスクをオーバーライドするかどうかを指定するオプションのセッター。これはデフォルトで false に設定されており、新しいタスクが既存のタスクを上書きしないことを意味します。

十分に公平ですが、タスクに何が起こるかは述べていません。起こらないことを 1 つだけ述べているだけです。つまり、タスクはオーバーライドされません。:) setUpdateCurrent を使用することが、重複したタスクが許可されていることを意味するかどうか、またはそれらが破棄されることを意味するかどうかは明確ではありませんか?

明確にするために、私の質問は次のとおりです。 setUpdateCurrent(false) を使用した場合、既にスケジュールされている別の OneoffTask と同じタグを持つ OneoffTask を作成すると、既にスケジュールされているタスクに加えて新しいタスクが引き続き発生しますか、または新しいタスクは破棄され、重複として却下されますか?

0 投票する
1 に答える
667 参照

android - GCM Network Manager、複数の 1 回限りのタスクが順番に実行されていますか?

序章

ユーザーが音楽アルバムのリストをお気に入りにできるアプリがあります。音楽アルバムのコンテンツはデバイスに保存され、オフライン アクセスが可能になります。

お気に入りの選択肢は、ローカルの SQLite データベースを介してオフラインでも保存されます

インターネットがアクティブな場合、お気に入りのリクエストの呼び出しは通常どおり行われますが、これをオフライン モードでサポートしたいと考えています。

ネットワークがアクティブなときにタスクをスケジュールできるようにする GCM Network Manager に出会いました。これにより、オフラインで行われるすべてのお気に入りの要求がスケジュールされます。

問題と私の質問

ドキュメントを調べて検索しましたが、これらの質問に対する答えが見つかりません。

  1. 同じタグを持つ複数の 1 回限りのタスクを送信して、上書きされないようにすることはできますか? setUpdateCurrentドキュメントでは、one off task builder classis のメソッドはデフォルトで false であり、オーバーライドされていないことを示唆しているため、これを尋ねます。ただし、setTagメソッドは、タグが同じ場合、既存のタスクが更新されると述べていますが、これは私が望んでいるものではありません。ユニークな音楽アルバムのお気に入りのリクエストになるので、同じタスクをキューに入れたい

  2. 私が持っている音楽アルバムIDのタグを設定することで上記を解決できると信じていましたが、GCMジョブマネージャーがタスクを実行する順序はわかりません。例を使用します

ここに 2 つのタスクがあります。これらには固有のタグがあり、最初のタスクが最初に送信され、2 番目のタスクの直後に送信されました。

  • タグ = 1A お気に入り
    • タグ = 1A-お気に入り

GCM ネットワーク マネージャーは、これらのタスクを送信された順序で実行しますか? お気に入りの前に非お気に入りリクエストが行われた場合、問題が発生する可能性があります。

私の質問を読んでくれてありがとう。

0 投票する
1 に答える
176 参照

android - 次のコードで Handler を使用して、JobScheduler を実行できるようにする方法

パッケージ comeagain.materialdesign.activities;

この問題を解決しようとして、オンラインにあるほぼすべてのソリューションを試しました。onCreate メソッドで Handler を実装したいのですが、コードに示すように実装しましたが、エラーが発生します (Handler is abstract; cannot be instantiated )。親切に助けて

0 投票する
0 に答える
255 参照

android - アプリの予期しない動作

Async Task と JobShceduler を使用し、SQlite を使用するアプリを作成しています。問題は、エミュレータ Api 23 でアプリを実行するとクラッシュしないことですが、SAmsung Grand Prime Kitkat で同じアプリを実行するとアプリがクラッシュします。私は初心者で、これを解決する方法の選択肢がありません。本当に助けていただきありがとうございます..これがエミュレーターのログキャットです。

これが実際のデバイスのLogcatです

活動メイン

リクエスタ クラス

TaskLoad

MyService クラス

0 投票する
1 に答える
679 参照

android - リアクティブ JobScheduler

Android の RxJava で Android JobScheduler (またはGcmNetworkManager ) の動作を模倣するにはどうすればよいですか?

具体的には、この機能が欲しい

  • ネットワーク アクティビティの認識
  • 自動バックオフと障害再試行

バックグラウンド: Android N では、接続の変更がバックグラウンド スレッドにブロードキャストされなくなりました。この問題を解決するには、Google は JobScheduler/GcmNetworkManager を使用することを提案していますが、私は RxJava で解決したいと考えています。

0 投票する
2 に答える
6050 参照

java - Android JobScheduler が数回実行される

以下のコードを使用して、Android JobScheduler API を使用してジョブを作成およびスケジュールしています。

つまり、2 時間ごとに実行される定期的なジョブと、ジョブが失敗した場合に 20 分 * 数実行される線形バックオフ ポリシーは失敗します。

私のジョブサービスコードは次のように書かれています:

最後に、ログ出力は次のとおりです。

onStartJob が 2 回呼び出されるのはなぜですか?