안드로이드 - 활동 사이를 탐색 할 때 명확한 역사
-
20-09-2019 - |
문제
사용자가 지속적으로 반복되는 3 가지 활동이 있습니다. 사용자가 메인 화면으로 돌아 오면 이전 히스토리를 종료하여 사용자가 뒤로 버튼을 누르고 화면 #2에 끝날 수 없으므로 그런 일을하는 좋은 방법은 무엇입니까? BTW- 1.6 (API 레벨 4)을 사용하고 있습니다.
반복하기 위해 - 나는 원래보기로 이어지는 길을 모르거나 예측한다고 말합니다. 그러나 일단 내가 그것을로드하면, 나는 사용자를 그 관점으로 이끌었던 역사를 지우고 싶다. 2.0에서는 덮어 쓰기 활동#Onbackpressed가 가능하지만 1.6에서 그런 것이 필요합니다.
해결책
좋아, 나는 당신이 3 가지 활동, A, B 및 C가 있다고 가정합니다. A는 메인 화면이며 사용자는이 3 페이지를 통해 루프됩니다. 그러나 사용자가 A를 입력하면 OnbackPresed 이벤트를 종료로 수행해야합니다. 명확하게 만들까요?
이러한 상황에서 B 또는 C에서 A를 시작하려고 할 때 의도에 의도를 추가 할 수 있습니다. 그러면 의도에 히스토리 스택이 지워지고 스택에 A 만있을 수 있습니다.
백 키 이벤트를 가로 채려면 onbackpressed ()를 무시할 필요가 없습니다. 우리는이 방법을 사용할 수 있기 전에 항상 onkeydown을 사용합니다.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
}
return super.onKeyDown(keyCode, event);
}
다른 팁
활동에 대한 명확한 역사를 원한다면 두 가지 방법으로 할 수 있습니다.
(1). manifest.xml 파일에서
AndroidManifest.xml 파일에서이를 구현할 수도 있습니다. 안드로이드 : nohistory = "true" 당신이 원하는 사람들의 속성
예시
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rdc.activity"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="xx" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".PickGalleryImageActivity"
android:label="@string/app_name"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
(2). 자바 코드로
활동을 시작할 때이 플래그를 추가 할 수 있습니다 intent.flag_activity_no_history
예시
Intent intent = new Intent(this, SomeOtherClass.class);
// do not keep this intent in history
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
그리고 다른 하나는 당신이 아래의 뒤로 버튼을 찾으려고한다면 예를 들어 도와 드릴 수 있습니다.
안드로이드를 찾고 있다면 API 레벨 최대 1.6.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//todo here
return true;
}
return super.onKeyDown(keyCode, event);
}
그것이 당신을 도울 수 있기를 바랍니다 !!