0

プログラムを初めて使用するときにイベントを取得したいので、このサービスを使用することにしました

public class PackageChangeReceiver extends BroadcastReceiver {

    Context context;

    @Override
    public void onReceive(Context ctx, Intent intent) {
}}

そしてメインフェストで

 <receiver android:name=".PackageChangeReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <action android:name="android.intent.action.PACKAGE_REPLACED" />
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <data android:scheme="package" />
            </intent-filter>
        </receiver>

しかし、このサービスはアプリケーションを初めてインストールしたときに機能しません。どうすれば最初にアプリケーションを実行できますか?それとも実行できませんか? このサービスを機能させるには、Eclipse からアプリケーションを 2 回更新する必要があります。問題は何ですか。

Androidシステムはいつそのサービスを利用できるようにしますか?サービスを利用できるようにするためにアクティビティの1つを実行する必要があることを一度心に留めていますか?それは本当ですか?

4

1 に答える 1

3

Android 3.1 以降、ブロードキャストを受信したいアプリは、Android がブロードキャストをアプリに送信する前に、その UI コンポーネント (つまり、アクティビティ) の 1 つを少なくとも 1 回実行する必要があります。これは、悪意のあるアプリの自動起動を防ぐために、セキュリティ上の理由から行われます。

于 2013-03-09T12:14:43.597 に答える