が機能していません。私は自分のアプリを起動するときに私の放送受信機を起動する必要があるので、私はこれらのアクションを使用しています。しかし、アプリを起動したり再起動したりすると、受信機は動作していません。携帯電話を再起動したときにのみ機能します。私の情報源に何か間違っていますか?BroadcastReceiverは、私は、このブロードキャストレシーバを実装している
3
A
答えて
3
論理的には、起動/再起動後にアプリを初めて実行すると、PACKAGE_FIRST_LAUNCH
がブロードキャストされるようです。そして、あなたのアプリケーションアクティビティスタックが削除され、あなたのアプリケーションが(再起動のように)再開するためにクリックされた場合には、PACKAGE_RESTARTED
がブロードキャストされるべきです。
しかし、アプリを起動したとき(おそらく最初のアクティビティから)カスタムアクション文字列をブロードキャストすることで、これを簡単に達成できます。
5
FYI:PACKAGE_FIRST_LAUNCH
はです。は、アプリケーションをインストールするために使用したもの、つまりAndroidマーケットとなるほとんどのエンドユーザー向けにインストーラパッケージに送信されます。
編集:
ああ、および「PACKAGE_RESTARTED」のために、独自の<intent-filter>
にその1を抜け出すと、1つは、URIと明示的なスキームが付属していますので、
<data android:scheme="package"/>
を追加します。
0
マニフェスト:
...
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></>
...
<receiver android:name=".AutoStart">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
...
受信機:あなたはそれが動作しません低いAPIレベルを使用している場合
package YourPackage;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class AutoStart extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
{
// Your code
}
}
}
0
意図android.intent.action.PACKAGE_FIRST_LAUNCH
は、AndroidのAPIレベル12で導入されます。それに応じてプロジェクト設定を変更してください。
関連する問題
- 1. BroadcastReceiverの実装
- 2. は、私はこのプラグインマネージャを実装している私のプロジェクトで
- 3. 私はこのようなクラスを実装しようとしている
- 4. Javaはここで私の "equals"実装と何をしていますか?
- 5. - SKProduct要求は、私はこのコードを実装しています
- 6. "android.intent.action.MY_PACKAGE_REPLACED"ブロードキャストレシーバの実装がXamarinで動作しません
- 7. 私は、このガイドで実装しようとしている<マスカブル-アイコン>
- 8. 実装:私はPHPでfirebaseを実装しようとしていますfirebase
- 9. は、私は私のウェブサイト上でこのインタラクティブマネージャを実装する方法を探しているウェブサイト
- 10. 私はこのDopri5実装で
- 11. のUITableViewは、私はこれらのメソッドを実装したボタン
- 12. サンキーダイアグラム - 私はこのサンキー例を実装しようとしていますタイトル
- 13. 私はこのようなアプリケーションのクラスを持っているBroadcastReceiver
- 14. インポッシブル私はクラスのRunnableを実装しているSingleThreadExecutor
- 15. fscheckは、私はので、私はこの実装を持っているFsCheckで遊んでいないよ
- 16. 私はインターフェイスを実装しますが、私は、「インターフェイスメンバを実装していません」を取得
- 17. は、私が今度は私が指定したBroadcastReceiverサブタイプを実行しますAlarmManagerを経由して、アラームを、インストールするビューを作成しましたBroadcastReceiver
- 18. は私のオブジェクトは、私は、この不変の順位オブジェクトを実装した
- 19. 私の実装は正しく実装されていますか?
- 20. は、アレイを実装し、私は私が使用したい、このRubyのコードを持って
- 21. 私はこのView Pager Indicatorライブラリを実装しています。 https://github.com/JakeWharton/ViewPagerIndicator
- 22. jQueryのアコーディオンは、私は、これはjQueryのアコーディオンの関数を作成実装しようとしている
- 23. 方法は唯一、私はインターフェイスを実装しています
- 24. のUITableViewCellの高さは、私はチャットビューを実装しようとしているこんにちは
- 25. は、ネイティブのマップビューは、私が実装されているiOSの
- 26. クラッシュ:私は実装したい何SDWebImage
- 27. Scalaは:私は、このソリューション実装した
- 28. Laravelが、私はこのように私のAPIの検証を実装しようとしているAPI
- 29. このバケットソートの実装は何をしていますか?
- 30. WCFデータサービス、EDMXエンティティデータモデルは、Oracle 11のデータベースは、私は次のメソッドを実装WCFデータサービス実装していますIIS
一般的には、文字列定数を使用するのは良いことです。インテントアクション文字列の場合は、あなた自身で行う必要はありません。これらの文字列はすべて、アンドロイドフレームワーク内で独自の定数を持ち、ほとんどがIntentクラスに属します。例えば。 ['Intent.ACTION_BOOT_COMPLETED'](http://developer.android.com/reference/android/content/Intent.html#ACTION_BOOT_COMPLETED)を参照してください。むしろこれらを使用し、自分で定義するときに時折の誤植による混乱を避けます。 ;) –