아래 스 니펫은 활동이 포 그라운드에있을 때 작동합니다. 그러나 MainActivity가 백그라운드에있을 때 MainActivity는 브로드 캐스트를 수신하지 못합니다.IntentService에서 일시 중지 된 활동으로 데이터를 보내는 방법은 무엇입니까?
MainActivity가 항상 브로드 캐스트를 수신하도록하려면 어떻게해야합니까? IntentService에서 일시 중지 된 활동으로 데이터를 전송하는 다른 방법이 있습니까? 내 IntentService에서
, 내 활동이Intent intent = new Intent();
intent.setAction(MY_SERVICE_RESULT);
intent.putExtra(MY_SERVICE_VALUE, "hello from service");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
처럼 MainActivity에 다시 데이터를 전송하고있어, 내가 있는지 확인하려면 어떻게해야이
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 **를 사용하거나 ** Callback ** 일 수도 있습니다. –
@RahulSharma, 저는 이미 BroadcastReceiver를 사용하고 있습니다. 콜백은 어떻게 사용합니까? 어떤예요? –
을이 활동 클래스에 구현하고 서비스 클래스 생성자의 콜백 인스턴스를이 활동 클래스에서 전달하십시오. 그리고 서비스 클래스에서는이 콜백을 사용하여 구현 한이 액티비티로 데이터를 보냅니다. –