둘 중 하나가 일시 중지 (스택) 된 두 가지 활동간에 통신하는 방법이 있는지 궁금합니다.누적 된 활동과 통신하기
sendBroadcast를 사용하여 데이터를 얻으려고 시도했지만 지금까지는 행운을 얻지 못했습니다. onCreate()에 수신기를 등록하고 onDestroy()에서 등록을 취소하므로 두 번째 활성 활동이 작동하는 동안 계속 작동합니다. 수신기에 필터를 추가했는데 의도가 적절합니다.
작동시킬 수도 있습니까? 또는이 통신을 달성하기위한 더 좋은 방법이 있습니까?
============= 요청 ==========로 코드를 추가 EDIT
====== CODE ===== =
- RECEIVER
private BroadcastReceiver localBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Globals.DATA_TO_ADSLIST)) {
int value = intent.getIntExtra(Globals.AD_ORGANIZER_TO_ADSLIST_VALUE, 0);
if (value > 0) {
listViewAdapter.notifyDataChange();
}
}
}
- BROADCAST
Intent dataToAdsList = new Intent(Globals.DATA_TO_ADSLIST);
dataToAdsList.putExtra(Globals.AD_ORGANIZER_TO_ADSLIST_VALUE, 1);
context.sendBroadcast(dataToDbService);
개
- UNREGISTER
@Override
public void onDestroy() {
super.onDestroy();
if (getActivity().isTaskRoot()) {
AQUtility.cleanCacheAsync(getActivity());
}
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(localBroadcastReceiver);
}
- 도움 REGISTER
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
IntentFilter filter = new IntentFilter();
filter.addAction(Globals.SEND_ADS_LIST);
filter.addAction(Globals.DATA_TO_ADSLIST);
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(localBroadcastReceiver, filter);
}
감사합니다! 이 도움이
코드를 게시하면 해결 방법을 찾는 것이 좋습니다. –
코드를 추가했습니다. – JakubW
일시 중지 된 활동과 통신 할 수 없습니다. 어떤 종류의 처리를 시작하려면 해당 활동을 포 그라운드로 가져와야합니다. 문제를 푸는 두 가지 방법 :'startActivityForResult'로 최상위 액티비티를 호출 한 다음'setResult'와'finish'를 사용하십시오 - 앞에서'onActivityResult'를 사용하여 필요한 것을하십시오. 두 번째 방법은 동일한 방식으로 일시 중지되지 않는 서비스를 사용하는 것입니다. –