기사 목록이있는 홈 화면이 포함 된 애플리케이션을 개발했습니다. 클릭하면 다른 화면에서 상세 정보에 액세스합니다.Jelly Bean의 Android 탐색 버튼 위로
ActionBarSherlock을 구현 했으므로이 활동을 위해 "위로"버튼 패턴을 사용했습니다.
그런 다음이 애플리케이션에 위젯을 추가했습니다. 위젯을 클릭하면 세부 활동에 직접 액세스 할 수 있습니다.
"위로"버튼은 Google 추천 (http://developer.android.com/training/implementing-navigation/ancestral.html)에 따라 구현되었습니다.
내 문제는 API 레벨 15 이하에서 완벽하게 작동한다는 것입니다.
@Override
public boolean shouldUpRecreateTask(Activity activity, Intent targetIntent) {
String action = activity.getIntent().getAction();
return action != null && !action.equals(Intent.ACTION_MAIN);
}
하지만 젤리 빈에
, 사용되는 코드는 다음과 같습니다 :public boolean shouldUpRecreateTask(Intent targetIntent) {
try {
PackageManager pm = getPackageManager();
ComponentName cn = targetIntent.getComponent();
if (cn == null) {
cn = targetIntent.resolveActivity(pm);
}
ActivityInfo info = pm.getActivityInfo(cn, 0);
if (info.taskAffinity == null) {
return false;
}
return !ActivityManagerNative.getDefault().targetTaskAffinityMatchesActivity(mToken, info.taskAffinity);
} catch (RemoteException e) {
return false;
} catch (NameNotFoundException e) {
return false;
}
}
방법의 첫 번째 부분은 스택을 다시해야하는 경우로드해야 활동에 대한 정보를 검색은 다음과 같은 코드를 호출합니다.
하지만, 여전히 라인업 무엇을하는지 이해가 안 :
이!ActivityManagerNative.getDefault().targetTaskAffinityMatchesActivity(mToken, info.taskAffinity);
는 사람이 줄에 좀 도와 줄래을 정말 잘 모든 것을 초기화하여 진정한 얻는 방법을 알아 내야?
올바른 케이스에 올바른 의도를 만들 수 있도록 true 또는 false를 반환하는 특정 코드에 대한 정보가 필요합니다. 내 대답은 비어 있습니다. 물론 메소드가 부울을 반환해야하는 경우 부울을 반환해야합니다. – Seynorth
내 대답을 다시 확인하십시오. 공식 문서에서 물건을 추가했습니다! – Pavlos
나는 또한 나의 질문을 편집했다. 나는이 방법의 목적이 무엇인지를 안다. 나는 그것을 위로 네비게이션 패턴으로 사용한다고 설명했다. 내 유일한 문제는 내 의도 또는 매니페스트 또는 다른 파일을 "true"값을 얻기 위해 잘 초기화하는 방법입니다. – Seynorth