6

私はAndroidを使用しています。

作業中のアプリで、アクティビティを使用して特定のユーザー入力値を設定し、サービスがそれらの値に基づいてアラートを提供するために使用しています。調査を行って、電話の起動時にアプリを起動する方法を決定しましたが、本当に必要なのは、サービスを開始することですが、アプリを画面にロードしないことです。現在、デバイスの電源を入れるとアプリ全体が画面に読み込まれ、デバイスを終了する必要があります。

設定用のインターフェイスを備えているが、それ以外はバックグラウンドで実行される同様のプログラムをダウンロードしました。それはどのように行われますか?

4

1 に答える 1

22

まず、レシーバーを作成する必要があります。

public class BootCompletedReceiver extends BroadcastReceiver {

    final static String TAG = "BootCompletedReceiver";

    @Override
    public void onReceive(Context context, Intent arg1) {
        Log.w(TAG, "starting service...");
        context.startService(new Intent(context, YourService.class));
    }
}

次に、AndroidManifest.xml にアクセス許可を追加します。

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

インテントレシーバーを登録します。

<receiver android:name=".BootCompletedReceiver" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

これが完了すると、アプリケーション (Applicationクラス) はサービスと共に実行されますが、アクティビティは実行されません。

ああ、アプリケーションを SD カード (APP2SD など) に置かないでください。ブートが完了した直後に使用できるようにするには、アプリケーションをメイン メモリに常駐させる必要があるからです。

于 2013-03-21T23:49:23.603 に答える