最近タスクからアプリが削除されても、静的に宣言されたBroadcastReceiverがブロードキャストを受信できるかどうか分かりますか?AndroidのスタティックBroadcastReceiverがアプリケーションが最近のタスクから削除されたときに機能しない
Bluetoothデバイスが接続されているときにブロードキャストされたイベントを再生しようとしています。
のAndroidManifest.xml
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="FROM_SERVICE"/>
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
</application>
MyReceiver.java
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.i("MyReceiver", intent.getAction());
Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
Log.i("MyReceiver", "BT device connected!");
v.vibrate(500); // Vibrate for 500 milliseconds
}
}
}
参考:
Why BroadcastReceiver works even when app is in background ?
Keep broadcast receiver running after application is closed
Android BroadcastReceiver Not being called after app closed from Running App List
いいえ最近のタスクからアプリを削除すると、BRは登録解除されるため、ブロードキャストは受信されません。 – Piyush
@PiyushGuptaそれから、他の方法はありますか?私はServiceとIntentServiceを試しました。最近の仕事からAppが削除されると、両方とも殺されました。 Musicアプリケーションを最近のタスクから削除した場合でも、音楽は再生され、コントロールは通知バーに表示されます。ありがとう! – Wilson
@Wilsonは、特定の携帯電話で同じ問題に直面しているため、この問題の解決策を得ています。 – Parth