2014-09-26 2 views
0

과 같이 (사용자가 와이파이 또는 데이터 네트워크 활성화를 위해) 나는 전화의 설정을 엽니 다 : 내 활동에 돌아 가면안드로이드 살인 활동 한 시점에서 내 응용 프로그램에서

startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS)); 

onCreate()가 호출되지만를 다시? onStart() ->onResume()이 호출 될 것으로 예상됩니다. 하지만 그 이후로 나는 안드로이드가 메모리 목적으로 그것을 죽인 것 같다. 무슨 문제가 있는데, onDestroy()이 전화를받지 않았다는 것이 정상입니까? onDestroy() 한 번도 호출하지 않고, 두 번 호출되는 활동의 onCreate()을 할 수 있습니까?

@Override 
protected void onDestroy() { 

    Log.e("onDestroy","Im destroyed"); 

    try{ 
     if(pois!=null) 
      pois.clear(); 
     pois=null; 
    }catch(Exception e){ 
     ; 
    } 

    super.onDestroy(); 
    unbindDrawables(findViewById(R.id.RootView)); 
    System.gc(); 
} 


@Override 
protected void onPause(){ 

    super.onPause(); 
    restore(); 

} 
+0

당신이이 선 후 마감()를 호출 한 앱의 스택의 활동을 알고 터미널에서 시도 할 수 있습니다? – ashutiwari4

+0

아니, 그럴까? – Libathos

+0

당신의 활동에서 onResume()을 호출 했습니까? – Umair

답변

0

startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS)); 이후에는 finish()으로 전화하지 마십시오. finish()를 호출하면 활동이 삭제됩니다. 그래서 startActivity (new Intent (android.provider.Settings.ACTION_SETTINGS))를 호출하십시오. 설정에서 활동을 재현하지 않고 뒤로 누를 경우 앱이 열립니다. 거기에 onStart()onResume()이 실행됩니다.

0

일단 onCreate 메서드가 호출되면이를 파기하지 않고 다시 호출 할 수 없습니다.
코드에서 create 메소드를 호출 한 다음 휴대 전화의 설정을 열면 앱이 자동으로 onpause 상태를 호출하고 설정을 수행 한 후 앱으로 돌아간 후 onresume 상태가 자동으로 호출되도록합니다. 이것은 아주 잘 당신이 원하는 방식으로 작동하고

0

, 당신은 또한

adb shell <enter> 
dumpsys activity | grep -i 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS)); 
    Log.e("MainActivity", "onCreate"); 
} 

@Override 
protected void onResume() { 
    Log.e("MainActivity", "OnResume"); 
    super.onResume(); 
}