2012-10-02 4 views
1

가능한 중복 :
android pressing back button should exit the appAndroid - 뒤로 버튼을 눌렀을 때 활동을 종료하는 방법?

난 그냥 운동에 대한 등록 및 로그인 화면을 짓고 있어요. 그래서 SharedPreferences를 두어 사용자가 앱을 다시 열면 로그인 액티비티로 보내고 등록자에서 다시 시작하지 않도록합니다. 그러나 로그인 액티비티에서 뒤로 버튼을 누르면 이미 저장된 SharedPreferences를 변경할 수있는 활동을 등록하기 위해 다시 돌아옵니다. 나는이 기능을 사용하지 않으려 고합니다. 사용자가 뒤로 버튼을 누르면 앱을 종료하는 방법은 무엇입니까?

감사합니다,

답변

9

당신이이 등록 화면으로 돌아가려면 뒤로 버튼을 싶지 않을 경우, 가장 깨끗한 해결책은

<activity 
     android:name=".RegistrationActivity" 
      ... 
     android:noHistory="true" > 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

+1. 이것은 좋은 것 같습니다. –

+0

은 언급 한대로 완벽하게 작동합니다. 감사합니다. –

1
@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
} 

이 방법의 어획량은 뒤로 버튼을 누르면됩니다.

+0

이렇게하면 뒤로 버튼 클릭을 차단하지만 사용자가 이전 활동으로 돌아 가지 않게하는 방법은 무엇입니까? – Sam

+0

이것을 사용하면 이전 활동으로 이동하는 데 도움이됩니다. mainIntent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); \t \t \t \t startActivity (mainIntent); \t \t \t \t finish(); –

0
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() ==KeyEvent.ACTION_DOWN) 
    { 
     //Handler for KEYCODE_BACK Pressing. 
    } 
} 
즉, 매니페스트에 noHistory 속성을 사용하여 활동 기록에서 제외하는 것

당신은 활동 종료하려면 : 당신의 활동이 수행되고 폐쇄되어야 할 때

public void finish() 

.Call이 . ActivityResult는 onActivityResult()를 통해 시작한 사람에게 전파됩니다.

다른 활동을 종료하려면

는에 startActivityForResult를 통해 시작 :

public void finishActivity (int requestCode) 

.Force는 이전에 startActivityForResult (의도, int)를 시작했던 다른 활동을 마무리합니다.

0

Paul-Jan의 대답과 달리, 등록 활동에서 startActivity (...)를 호출하면 바로 finish()를 호출 할 수 있습니다.

관련 문제