問題タブ [android-job]

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 投票する
0 に答える
734 参照

android - 保留中のジョブにリストされていない私のジョブ: Android JobScheduler

シナリオ

こんにちは、HomeScreen に来たときに起動する JobService があります。このジョブ サービスは、DB から要求を取得し、インターネットが利用可能なときはいつでも実行します。そのため、デバイスがオフラインの場合でも、DB にトランザクションを挿入すると、インターネットが接続されるたびに JobService がそれらのトランザクションを実行します。

問題

問題は、多くの画面から HomeScreen にアクセスすることです。そのため、HomeScreen にアクセスするたびに、JobService を再起動します。したがって、インターネットが来る前にホームスクリーンに 3 回アクセスした場合、同じタスクに対して 3 つの異なるサービスが実行されています。そのため、サービスが既に実行されているかどうかを確認したかったので、サービスを開始しません。

私が試したこと

JobService を開始するコードは非常に単純です。私はそれを開始して呼び出すメソッドを書きましたOnCreate()

私は電話をかけexecuteQueueますonCreate()。StackOverflow で検索したところ、次のリンクが見つかりました。

AndroidでJobServiceが実行されているかどうかを確認するには? .

したがって、JoService が実行されているかどうかを確認するために、HomeScreen に次のメソッドがあります。

しかし、この方法では、実行中の JobService がリストされることはなく、毎回表示falseされるため、JobService の複数のインスタンスという同じ問題が再び発生します。

私の質問が明確になったことを願っています。

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

android - アプリケーションの起動時に実行されるべきではないジョブ

私は Evernote lib から android-job を持っています。ジョブは、特定の状況で定期的に実行されるように設定されています。したがって、ジョブビルドは、定期的にジョブを開始したい場合にのみ呼び出されます (これはアプリの開始時ではありません)。

JobService を作成します。

JobCreator:

アプリケーション クラスで、ジョブを登録するために必要な行を追加します。

この時点で、アプリケーションが開始され、JobService クラスが作成されます。(OK)しかし、このクラスには、このメソッドscheduleJobPeriodicallyがあり、このメソッドは起動されますが、明示的に起動しないため、起動されるべきではありません。アプリをデバッグ モードで起動しましたが、ジョブのタグを設定する JobRequestBuilder だけでなく、定期的な作成が直接呼び出されていないことも確かです。しかし、onRunJobのコードが起動され、それが問題です。

少し早いですがお礼を。

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

android-jobscheduler - Oppo Realme1 Job Schduler 定期作業の最小間隔は 1 時間です

現在、私は使用してWorkManager 1.0.0-alpha05います。以下を使用して定期的なWork Requestを設定しますcode。間隔が 1 時間未満の場合Oppo Realme、(Android バージョン - 8.1.0 ではColorOSVersion V5.0) 時間にジョブが実行され1ます。時間間隔を超える1と、正確な時刻にジョブが実行されます。interval が hr より小さい場合1、ジョブは1hr で実行されます。

必要なログまたは情報をお知らせください:

スケジュール定期ジョブのコード:

他のすべてのデバイスで定期作業の要求間隔は適切です。Oppo Realme 1 では、1時間に作業を実行します。

Oppo Realme 1: 間隔 15 分

以下のコマンドを使用して Job Schduler をデバッグします。 adb shell dumpsys jobscheduler

Oppo Realme 1: 間隔 1 時間 10 分

ログ:

その他のデバイス:

ログ:

また、別のライブラリを使用してみます。Job Scheduler と Android-Job で同じ動作を見つけました。ジョブ期間の長さは 15 分ですが、1 時間で実行されますが、firebase ジョブ ディスパッチャ ジョブを使用しようとすると、正しい 15 分間隔で実行されます。

以下のコマンドを使用してジョブ スケジューラと Android ジョブをデバッグします: adb shell dumpsys jobscheduler

ジョブ スケジューラ:

インターバル:15分 出力 :1時間

ログ:

Android ジョブ:

間隔: 15 分 出力: 1 時間:

ログ:

Firebase ジョブ ディスパッチャー:

以下のコマンドを使用して、firebase job Dispatcher をデバッグします: adb shell "dumpsys activity service GcmService | grep com.jobscheduler_periodic"

インターバル:15分 出力:15分

ログ:

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

android - Evernote Job から Workmanager への移行

バックグラウンド同期用のアプリにhttps://github.com/evernote/android-jobを使用しています。現在、Workmanager への移行を計画しています。

私の質問は、私たちの新しいビルドでは、workmanager に関連するクラスを含め、android-job に関連するクラスを evernote ライブラリと共に削除するということです。既存のユーザーの場合、この新しいバージョンにアップグレードした後、古いジョブが解雇されたらどうなりますか? 呼び出し中にアプリがクラッシュした場合は?

アップグレード中にジョブ関連ファイルを削除することは良い方法ですか?