내 Android 앱은 여러 번 실행되어 트리와 같은 구조로 이동하는 활동을 포함합니다. 이 구조의 모든 활동을 닫으려면 브로드 캐스트 수신자이 의도를 기다리고 필요할 때 활동을 완료한다고 선언했습니다. 이 활동의 모든 인스턴스는 동일한 작업 이름으로 자체 수신자를 시작합니다.브로드 캐스트 수신기가 에뮬레이터와 휴대 전화에서 작동하지만 태블릿에서는 작동하지 않습니다.
이 응용 프로그램의 모든 측면은 에뮬레이터 API20 및 소니 Xperia S 4.1.2 버전에서 작동합니다. 만타 MID709 태블릿 (xperia와 동일한 안드로이드 버전)에서 수신기는 특정 활동이 맨 위에있는 경우 (작동 및 보이는 경우)에만 작동합니다. 그래서이 액티비티의 한 인스턴스를 닫습니다. 새로운 것을 실행하면 아무 것도 닫히지 않습니다.
방송 수신부를 선언하는 코드 (에서 onCreate 밖에 있지만 활동 내부) 에뮬레이터 난 세 끝나야 XPERIA에서
Intent intent2 = new Intent();
intent2.setAction("com.application.STOP");
sendBroadcast(intent2);
(세 개의 인스턴스 :
public BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.application.STOP")) {
unregisterReceiver(broadcastReceiver);
Toast.makeText(getApplicationContext(), "Intent Received", Toast.LENGTH_LONG).show();
finish();
}
}
};
폐쇄 활성화 코드 실행 중) "Intent Received"토스트와 앱 종료. 태블릿에는 때로는 하나의 "의도받은"축배 또는 전혀 없습니다.