2013-03-21 11 views
6

私はAndroidで作業しています。起動時にサービスを起動しますが、Androidアプリ全体ではありません

私が取り組んでいるアプリケーションでは、アクティビティを使用して特定のユーザー入力値を設定し、サービスによってこれらの値に基づいてアラートを提供します。私が本当に望んでいるのは、サービスを開始して、画面にアプリの負荷がないようにすることです。現在、デバイスの電源を入れたときにアプリ全体が画面に表示されてしまい、それから終了する必要があります。

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

+0

どのオペレーティングシステムですか? – nunzabar

+0

申し訳ありません。私はAndroidで働いています。特にAPI 10. – user2196720

+3

いくつかのコードを投稿してください。あなたはBroadcastReceiverを実装しましたが、私は 'onReceive'で何をしていますか? context.startService()? –

答えて

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など)に置かれないようにしてください。ブートが完了した直後にメインメモリに常駐する必要があるからです。

+0

あなたの返事をありがとう。あなたは私が実際に正しいことをしていることを確認しました。それが機能していなかったのは、サービスが、アクティビティが起動するまで利用できなかったアクティビティからのデータを必要としたためです。しかし、私は仕事を思いついた。とても有難い! – user2196720

関連する問題