2012-12-11 5 views
0

전화가 시작되면 응용 프로그램을 다시 시작하려고합니다. 나는 전화 상태 변경을 듣고 있는데, 나는 상태를 벗어 났을 때 응용 프로그램을 다시 시작하려고합니다.응용 프로그램을 다시 만들기 전에 다시 실행하십시오.

Intent i = new Intent(context, MyClass.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 

활동이 내가 "singleTop"발사 모드를 사용하고 다시 만들 수없는 것 :

은 내가 사용하고 발사 활동 코드입니다. 문제는 활동이 다시 시작되었지만 정면에 있지 않다는 것입니다. 어쩌면 누군가가 이것을위한 해결책을 가지고있을 것인가? 감사합니다. .

+0

방법에 대한 [FLAG_ACTIVITY_REORDER_TO_FRONT] (http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT) 빠른 회신 –

답변

0

아래에보십시오 :

  Intent intent = new Intent(context, MainActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
      intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

      finish(); 
      startActivity(intent); 
+0

Tkanks는하지만이 시도. 작동하지 않습니다. – user1252459

+0

코드를 사용하여 finish()를 시도 했습니까? – ZealDeveloper

+0

프론트에 활동을 팝업하고 다시 만듭니다. – user1252459

1

당신이 당신의 매니페스트에 singleInstance에 활동을 설정하는 시도?

이렇게하면 동일한 활동이 열립니다 (하나의 인스턴스 만있을 수 있기 때문에). 이것은 나를 위해 일하지만 몇 가지 단점을 의미합니다. 전의. 다른 작업에 대한 활동을 사용할 수 없습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 android를 사용하는 데있어 불만을 터트 깁니다. launchMode = "singleTop" – user1252459

0

응용 프로그램이 아직 실행 중이며 작성하지 않고 시작할 수 있다는 보장은 없습니다. 이런 이유로 당신은 중단 한 곳에서 계속하기 위해 플래그에 의존하지 않아도됩니다. 대신 으로 변경되며 응용 프로그램이 숨겨져있을 때 상태를 저장하고 응용 프로그램을 다시 시작할 때 상태를 복원하려면이됩니다. Android Activity Lifecycle (http://developer.android.com/reference/android/app/Activity.html에서 볼 수 있음)을 기반으로 다양한 방법으로이를 수행 할 수 있습니다. onPause() 방법으로 내 상태를 저장하고 onResume() 방법으로 복원하면됩니다.

관련 문제