2013-10-12 6 views
0

앱이 있습니다 (많은 활동). 앱이 백그라운드로 전환 될 때 사용자 자격 증명과 같은 값을 지우고 싶습니다. 앱이 백그라운드로 전환되는 시점을 어떻게 알 수 있습니까? 홈 버튼을 가로 채려고했지만 tht를 할 수없는 것처럼 보입니다. onPause()를 호출하면 한 활동에서 다른 활동으로 이동할 때마다 호출됩니다. 나는 많은 것을 수색했지만 구체적인 것은 얻지 못했다.앱이 백그라운드로 이동하면 앱이 데이터를 지 웁니다.

답변

0

도와주세요 난 당신이 한 데이터를 포함하고 다른 방법은 이동 중지() 액티비티의 상태 (당신이 언급으로) 홈을 눌러 잡기에 데이터를 삭제되어 목표를 달성하기 위해 두 가지 방법이 있다고 생각 행사.

홈 프레스 이벤트를 감지하면 오버라이드 (override) : onAttachedToWindow()

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);   
} 

다음에 데이터를 삭제 :

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) {  

    if(keyCode == KeyEvent.KEYCODE_HOME) 
    { 

     //Put your Codes here to Clear Data 

    } 
}); 
0

이 안드로이드와 어려운 응용 프로그램이에가는 구체적인 정의가 없기 때문에 배경. 홈 키를 감지하는 것만으로는 충분하지 않을 수 있습니다. 앱에서 집중력을 잃게되는 다른 많은 이벤트가 있기 때문입니다.

예를 들어 들어오는 호출로 인해 앱이 백그라운드로 이동하게되지만 사용자에게는이 문제가 발생하지 않습니다.

원하는 것을 얻기위한 가능한 방법은 액티비티의 OnPause 및 OnResume 메서드를 사용하여 응용 프로그램 클래스의 서비스 또는 간단한 작업과 통신하는 것입니다. (귀하의 활동과 무관 한 모든 것).

OnPause가 호출되면 타이머를 시작하십시오. OnResume이 호출되면 타이머를 중지합니다.

타이머가 특정 시간 내에 중지되지 않으면 앱을 "백그라운드로"간주하고 데이터를 지울 수 있습니다.

위의 수신 전화 사례와 같은 간단한 변경 사항을 처리하는 데 충분한 시간을 허용하십시오. 아마도 상황에 따라 1 ~ 2 분 정도 걸릴 것입니다.

관련 문제