-3

デバイスの再起動時に Android サービスを自動的に開始しようとしています。Receive_Boot_Complete アクセス許可、BroadcastReceiver と Boot_Complete インテント アクションを使用してこれを達成しようとしましたが、成功しませんでした。私は、Android 3.0 アプリが再起動時に停止状態になった後、レシーバーを実行できないことをよく知っています。ただし、再起動時にサービスとプロセスを実行するLookoutなどのモバイル セキュリティ アプリがいくつかあります。彼らはどのようにしてこれを達成できるのでしょうか?

<!-- Listen for the device starting up -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <receiver android:name="com.tpss.beacon.BootCompleteReceiver">
            <intent-filter>
                      <action android:name="android.intent.action.BOOT_COMPLETED"/>
                      <action android:name="android.intent.action.QUICKBOOT_POWERON" />
            </intent-filter>
    </receiver>     


  public class BootCompleteReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {

    context.startService(new Intent(context, UpdateGeofenceService.class));  
   }
}   
4

1 に答える 1

0

システムが起動すると、BOOT_COMPLETED インテントのブロードキャストが送信されます。したがって、そのインテントをキャッチするには BroadcastReceiver を作成する必要があります。

public class BReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, final Intent intent)
{
    Log.i(TAG, "onReveive BOOT_COMPLETED");

            // start your service
            context.startService(new Intent("your_service"));
    }
}

次に、マニフェストを変更します。

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

パーミッションを追加することを忘れないでください:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
于 2014-05-28T15:25:37.163 に答える