以下のスニペットは、アクティビティがフォアグラウンドにあるときに機能します。ただし、MainActivityがバックグラウンドにある場合、MainActivityはブロードキャストの受信に失敗します。IntentServiceから一時停止したアクティビティにデータを送信するにはどうすればよいですか?
MainActivityが常にブロードキャストを受信するようにするにはどうすればよいですか? IntentServiceから一時停止したアクティビティにデータを送信する他の方法はありますか?私IntentServiceで
、私は私が確認してくださいどのようにこの
public class MainActivity extends AppCompatActivity{
BroadcastReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
String value = intent.getStringExtra(MY_SERVICE_VALUE);
}
};
@Override
protected void onResume() {
super.onResume();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(MY_SERVICE_RESULT);
LocalBroadcastManager.getInstance(this).registerReceiver(receiver, intentFilter);
}
@Override
protected void onPause() {
super.onPause();
LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver);
}
}
}
** BroadCastReceiver **を使用するか、**コールバック**を使用することもできます。 –
@RahulSharma、私は既にBroadcastReceiverを使用しています。コールバックはどのように使用しますか?どんな例ですか? –
これをアクティビティに実装し、サービスクラスコンストラクタのコールバックインスタンスをこのアクティビティクラスから渡します。サービスクラスでは、このコールバックを使用して、実装したこのアクティビティにデータを送信します。 –