I가 내가 안드로이드 가이드 라인을 준수하기 위해 다시 스택 백 스택을 구축하는 액티비티 (C) 시작 알림 : 사용자는 알림을 클릭예기치 않은 돌아 가기 스택 행동
C
B
A
을, 그것을 C를 열면 그들이 뒤로 누르면 B로 간 다음 A로 간 다음 홈 화면으로 간다. 이것은 예상대로 작동합니다.
사용자가 알림을 클릭하면 (C 열림) 홈 버튼을 눌러 홈 화면으로 이동 한 다음 홈 화면에서 앱을 시작하고 예상대로 C가 아니라 A를 엽니 다. 그런 다음 다시 (A에서) 누르면 C, B, A가 표시됩니다.이 상황에서 홈 화면에서 앱을 시작하면 새로운 활동 A가 만들어져 기존 스택 맨 위에 놓입니다. 대신 스택의 모습 때문에, 기존의 스택 (C)의 상단을 여는 :
A
C
B
A
내 코드 다시 스택을 생성하고 통지 의도를 시작 :
/* Build the back stack for navigation */
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
/* Pairing List */
Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
stackBuilder.addNextIntent(intent);
/* Pairing */
intent = new Intent(this, B.class);
intent.putExtra("id", briefing.getLeg().getDay().getPairing().getId());
stackBuilder.addNextIntent(intent);
/* Create a launch intent and notification */
intent = new Intent(this, C.class);
intent.putExtra("date", briefing.getLeg().getDay().getDate());
intent.putExtra("id", briefing.getLeg().getId());
intent.putExtra("briefing", true);
stackBuilder.addNextIntent(intent);
pIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_ONE_SHOT);
활동 선언에 내 선언 :
<activity android:name=".C" />
<activity
android:name=".A"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".B" />
의도에 대한 플래그를 설정하는 데 문제가 있다고 생각하지만 변경해야 할 항목이 확실하지 않습니다. 어떤 아이디어?
(또는 웹 브라우저 이클립스 또는 인 IntelliJ 같은 또는에서 IDE에서) :
는 한 번 봐? 그렇다면 Android에서 설명 된 동작을 유발하는 버그가 있습니다. 대신 HOME 화면에서 응용 프로그램을 실행 (처음)하고 문제가 아직 있는지 확인하십시오. –설치 후 첫 번째 출시를 의미합니까? 그것은 이클립스를 통한 것이었다. 그 이후로 장치가 재부팅 된 후 홈 화면에서 앱이 시작되었다. – Ralgha
위 코드에서 추가 한 플래그가 아무런 차이가 없다고 판단했습니다. 또한이 동작은 루트 액티비티 (A)를 백 스택에 넣을 때만 발생하는 것으로 확인되었습니다. B와 C 만 A없이 추가하면 예상대로 작동합니다. 내가 A, B, C를 더하면 문제가 생깁니다. 나는 이것을 고치는 방법을 모른다. – Ralgha