1

基本的に、デバイスを再起動し、再起動後に同じアクティビティに戻るボタンを含むアクティビティを作成しようとしています。

この質問は、デバイスの再起動に関する他の質問と混同される可能性があることを理解していますが、デバイスを正常に再起動できるため、それはこの質問の焦点では​​ありません。

ボタンでデバイスを再起動させましたが、再起動が完了した後にアクティビティを開始できるようにする唯一の方法はBOOT_COMPLETED、マニフェストにブロードキャストレシーバーを登録することです。問題は、この方法では、デバイスが起動するたびにアクティビティが開始されることです。これは望ましくありません。ボタンクリックリスナーにレシーバーを登録すると、再起動後にアクティビティが開始されません。

BOOT_COMPLETED意図的に再起動したかどうかを判断するために使用できる余分なものがあるのではないかと思っていました。

事前に感謝します。

4

2 に答える 2

5

アクティビティによって意図的に再起動されるデバイスに対応する整数を保存するだけです。SharedPreference同じように使用します。再起動時にbroadcast receiver、値が設定されているかどうかを確認します。設定されている場合はアクティビティを開始し、設定されていない場合は放します。

編集

再起動が完了し、アクティビティが前面にある場合は、常にこの値を設定解除してください。

于 2015-08-26T08:40:48.323 に答える
0

XML は、manifest.java ではなく、AndroidManifest.xml という名前のファイルに保存する必要があります。

コードが実行されないもう 1 つの理由は、アプリが外部ストレージ (sdcard) にインストールされている可能性があります。BOOT_COMPLETE は、外部ストレージがマウントされる前にアプリケーションに送信されます。そのため、アプリケーションが外部ストレージにインストールされている場合、BOOT_COMPLETE ブロードキャスト メッセージは受信されません。

それが問題でない場合は、Android で動作するブート完了レシーバーを取得する方法についての非常に優れた説明が既にあります。

Androidで起動時にサービスを開始しようとしています

于 2015-08-26T08:41:51.797 に答える