問題タブ [bootcompleted]

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

android - Android BOOT_COMPLETED

BOOT_COMPLETED イベントについて質問があります。常にサービスを実行する必要があります (AlarmManager 経由で実行) が、BOOT_COMPLETED イベントはデバイスの再起動後にのみ送信されるため、アプリケーションを初めてインストールするときにサービスを手動で開始する必要があるかどうか疑問に思います。これは一般的にどのように処理されますか。誰もこの問題を抱えていないようですが、ここで何か問題がありますか?

0 投票する
3 に答える
4494 参照

android - BOOT_COMPLETED の Android BroadcastReceiver がアラームを開始しない

起動時にいくつかのコードを実行するために、比較的単純なソリューションを使用しようとしています。基本的に、起動時にアラームをスケジュール/再スケジュールして、将来特定のタスクを実行したいと考えています。

私のマニフェストには次のものがあります。

そして私のコード:

コードのコメントを外してアクティビティを開始すると、うまく機能し、受信機によって BOOT_COMPLETED がキャプチャされていることがわかります。ただし、アラームを開始しようとしても機能しません (通知を表示しようとしても機能しません)。どうすればこれを解決できますか?

0 投票する
3 に答える
1159 参照

android - Android アプリ コンポーネント間でデータを共有する最良の方法

多くのコンポーネントで構成されるアプリに取り組んでいます。
アプリはAlarmManager、サーバーからのポーリングを行うために使用しています。データを表示する通常のアクティビティもあります ( と に保存されますSqlite) SharedPreferences

デバイスが boot( BOOT_COMPLETED) を終了しSharedPreferencesContextときにポーリングを開始する機能を追加しようとするまで、すべてがうまくonReceive(Context context, Intent intent)機能していましたBroadcastReceiver

もう 1 つのことは、Singleton を使用してすべての機能を処理していることSharedPreferencesですDB。この Singleton は、アプリContext最初のランチ アクティビティ( LoginActivity) を保持します。アプリ全体と Polling で使用しますBroadcastReciver

だから私は理解しています(信じています...)デバイスがブートを終了すると、私は Contextのものになり(私が取得していたLoginActivityコンテキストではありません)、これが問題の原因です(それは???)

このすべての前文の後、私が本当に必要としているのは、そのようなタスクのベストプラクティスアプローチです-アプリ上SharedPreferencesおよびDBアプリ全体でデータを保存および取得する方法:

  1. ユーザーがそれを実行するとき
  2. 経由でバックグラウンドタスクを実行するときAlarmManager
  3. BOOT_COMPLETEDブロードキャスト経由で自動起動するとき

Contextこの問題に苦しむことなく。例は素晴らしいでしょう。

編集: ここに私のコードスニペットがあります:

ConnectionManager.java- このクラスは REST リクエストの実装を保持し、SharedPreferences にデータを保存します:

MainBootListener.java: このクラスは、ポーリング メカニズムをアクティブにすることを想定しています - ConnectionManager に例外があるため、機能していません。

DataPollingBroadcastReceiver.java: サーバーからデータをポーリングするこのクラス

もちろん、もっと多くのクラスがあります-私は必要最小限のものを持ってくるようにしています.

編集私が受け取った例外2:アプリケーションからポーリングメカニズムがアクティブであり(シングルトーンがLoginActivityをコンテキストとして保持している)、タスクマネージャーからアプリケーションを閉じると、ポーリングが停止し、この例外が表示されました:

アプリが実行されていないときに2番目の例外が発生し、シングルトーンが初期化しようとしたよりも、adbからBOOT_COMPLETEDを送信しました。BroadcastReciver コンテキストを使用します。これは例外でした:

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

java - boot_complete レシーバーから外部サービスを開始できません

必要な最小限のコードを使用して、apk から外部サービスを開始しようとしています。4.0 AVD でパッケージをテストし、logcat で応答を確認すると、適切な結果が得られるようです。ただし、実際のデバイスではロードされません。実際、logcat にはまったくリストされていないようです。

それはおそらく私が見落としているものであり、確認するために2番目の目が必要なだけです.

StartService.java:

AndroidManifest.xml

AVD 応答:

サービスを含む実際のパッケージが AVD にインストールされていないため、実際には「見つかりません」と予想されます。システムの SharedUserID が原因でインストールできません。しかし、少なくとも、実際のデバイスはlogcatメッセージにリストされていませんが、AVDでロードしようとしていることがわかります。

背景を少し説明すると、サードパーティのランチャーがデフォルトに設定されている場合、この特定の Android デバイスは「com.winca.service/.StartService」サービスをロードしていません。これにより、デバイス上のオーディオ サービスの多くが、アクティブ化されるまで無効のままになるのを防ぐことができます。それで、それを行うための簡単なパッケージを作成するかもしれないと思いました。Tasker のようなものを使用する代わりに (何らかの理由で強制的にこのデバイスを閉じます)。

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

android - BOOT_COMPLETED レシーバーから位置情報更新をリクエストしますか?

onReceive メソッドから位置情報の更新を取得する必要があります。onReceive() が GPS の開始を 2 ~ 3 秒間呼び出してから消えたのはなぜですか??

それを修正する方法?? 位置情報の更新を取得したい。助けてください。

注: 電話の再起動時に onReceive メソッドが呼び出されます

Java コード:

マニフェスト.xml

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

android - Android アプリケーションが BOOT_COMPLETED インテントで起動すると、NfcAdapter.getDefaultAdapter が null を返す

BOOT_COMPLETEDブート完了後 ( BroadcastReceiver によってイベントが受信されたとき) に開始される NFC ベースの Android アプリケーション。

問題

NfcAdapter.getDefaultAdapter(this)null を返す場合もあります。これはランダム/一貫性がなく、一部のブート サイクルでは正常に動作して を返しNfcAdapter、他のブート サイクルではこのメソッドは null を返します。

null が返された場合、NFC サービスがまだ開始されていないか、BOOT_COMPLETEDイベントがブロードキャストされるまでに NFC サービスが完全に実行されていない可能性があります。

質問

BOOT_COMPLETEDイベントがブロードキャストされる前に、NFC サービスが実行中で安定していることを確認する方法はありますか?

デバイスがルート化されていると仮定すると、init.rc変更すると役立ちますか? はいの場合、誰かがそのような問題に遭遇した場合、微調整は何ですか?