1

誰か (メンバー「buptcoder」) が、私が抱えていた問題を非常に迅速かつ適切に解決するのを手伝ってくれました。ここでコミュニティを見つけてよかったです。皆さんのお陰で。

「起動時にサービスを開始する」という Web ページをたくさん読みましたが、まだ疑問が残ります。

ここに私がすでに持っているコードがあります: ボタンをクリックして (アクティビティ内)、サービスを実行し、BroadcastReceiver (SMS_RECEIVED) を登録します。戻るボタン (Google Android ボタン) をクリックしても、サービス (および BroadcastReceiver) はアクティブなままです。良い。

ここに私が望むものがあります:ユーザーが電話を再起動しても、そのサービス(ボタンによってアクティブ化された)を自動再起動したい. サービスのアクティブ化は動的であり、ユーザーがボタンを押さなかった場合はサービスを実行したくありません。

アクション BOOT_COMPLETED を使用する必要があることはわかっていますが、正確に実行する方法がわかりません。

誰かが私が書いたことを理解し、私を助けてくれるなら:)

ありがとう。

4

2 に答える 2

1

あなたが言及した:I know I should use action BOOT_COMPLETED but I can't understand how we can do it exactly.

BOOT_COMPLETEDアクションの使い方を知りたいですか?それを使用するには、ファイルに変更を加える必要がありManifestます。<intent-filter>マニフェストでレシーバーを指定した場合、タグにアクションを追加できます。次のようなもの:

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

ブロードキャスト レシーバーの機能内で、OnReceiveを受信したときに実行したいアクションを実行できますBOOT_COMPLETE。何かのようなもの:

//Inside your BroadCast Receiver: 
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction()!= null){
        if( intent.getAction().equals("android.intent.action.BOOT_COMPLETED") ){
            // Do something here 
        } 
    }
}

この権限を追加する必要がある場合もあります

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

これが他の人に役立つことを願ってコメントしてください。

于 2013-05-04T02:47:48.040 に答える