2012-09-21 3 views
1

내 애플리케이션에서 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는 진저 브레드 폰에서 두 번 치며, 한 번만 명중됩니다 (애플리케이션이 시작될 때만).

다른 국기를 사용해야합니까, 아니면 무슨 일이 벌어지고 있는지 다른 생각이 있습니까? 아마 무슨 일이 일어나고 무엇

감사

답변

0

은 활동이 응용 프로그램이 시작될 때에 만 생성하고 인증 활동에서 다시에 갈 때 다음, 그것을 다시 간단하게된다는 점이다. onResume() 메소드의 HomeActivity에 인증 검사 코드를 넣으십시오.

다음은 더 자세한 정보입니다. http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle

+0

감사합니다. 나는 그것을 시도 할 것이다. 나는 방금 같은 일이 일어난다는 것을 깨달았다. (나는 나의 앱에서 뭔가를 잃어 버렸다고 생각했다. 나는 2.3.3 에뮬레이터에서 그것을 테스트하고 HomeActivity가 인증 된 후에 다시 시작하지 않는다. – oceanfeeling

+0

작동하지 않았습니다. finished()가 호출되면 HomeActivity가 파괴됩니다 (onDestroy가 호출 됨). Nevetheless, 나는 아직도 동일한 코드가 ICS에서 작동하는 이유를 이해할 수 없습니다. – oceanfeeling