내 애플리케이션에서 iosched 2012 앱의 일부 코드를 사용했습니다.startActivity to relaunch 동일한 애플리케이션의 다른 활동에서 HomeActivity가 Gingerbread에서 작동하지 않습니다.
1. 사용자는 사용자가 인증
2.HomeActivity 검사하는 경우 응용 프로그램의 실행 아이콘을 누르면 : 특정의 시작 워크 플로는 다음과 같다. 그/그녀가 아닌 경우 인증 활동을 시작하여 의도를 전달하고 완료합니다.
3. 로그인 프로세스가 완료되면 HomeActivity를 시작하기 위해 활동을 시작하고 자체 완료
4.HomeActivity는 사용자가 인증되고 응용 프로그램의 홈 화면을 표시하는지 다시 확인합니다.
다음 코드는 API 레벨> 11의 매력처럼 작동합니다. 오늘은 진저 브레드에서 앱을 시험해 보았습니다. 실패했습니다. 3 단계는 작동하지만 HomeActivity가 시작 되더라도 시작되지는 않습니다. 최근 목록을 사용하고 홈 액티비티와 현재 표시된 내용을 보려면 애플리케이션을 선택해야합니다.
여기서 코드의 상기 oncCreate 방법에서 HomeActivity에서 확인
mFinishIntent 멤버 변수가 어디에 로그인 후의 인증 활동 호출있어서protected void handleLoginSuccess(LoginServiceResponse response, String username, String password) {
if(....) {
if(mFinishIntent != null) {
mFinishIntent.addCategory(Intent.CATEGORY_LAUNCHER);
mFinishIntent.setAction(Intent.ACTION_MAIN);
mFinishIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(mFinishIntent);
}
finish();
} else {
super.handleLoginSuccess(response, username, password);
}
}
을 완료
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!AccountUtils.isSystemAuthenticated(this)) {
AccountUtils.startSystemAuthentication(this, getIntent());
finish();
} else if(!AccountUtils.isAppAuthenticated(this)) {
AccountUtils.startAppAuthentication(this, getIntent());
finish();
}
if(isFinishing()) {
return;
}
setContentView(R.layout.activity_main);
...
}
}
(getIntent()를 사용하여) HomeActivity에서 전달 된 의도
앞에서 언급 한 것처럼 API 레벨> 11에서는 잘 작동하고 breakp HomeActivity의 onCreted 메소드의 oint는 진저 브레드 폰에서 두 번 치며, 한 번만 명중됩니다 (애플리케이션이 시작될 때만).
다른 국기를 사용해야합니까, 아니면 무슨 일이 벌어지고 있는지 다른 생각이 있습니까? 아마 무슨 일이 일어나고 무엇
감사
감사합니다. 나는 그것을 시도 할 것이다. 나는 방금 같은 일이 일어난다는 것을 깨달았다. (나는 나의 앱에서 뭔가를 잃어 버렸다고 생각했다. 나는 2.3.3 에뮬레이터에서 그것을 테스트하고 HomeActivity가 인증 된 후에 다시 시작하지 않는다. – oceanfeeling
작동하지 않았습니다. finished()가 호출되면 HomeActivity가 파괴됩니다 (onDestroy가 호출 됨). Nevetheless, 나는 아직도 동일한 코드가 ICS에서 작동하는 이유를 이해할 수 없습니다. – oceanfeeling