2014-11-30 4 views
0

현재 Android Webview 앱을 개발 중입니다. 내 응용 프로그램을 종료하려면 다음 코드를 사용하고 있습니다. 문제는이 코드를 사용하면 이전 페이지로 돌아갈 수 없으므로 아직 염두에 두지 않은 점입니다.홈페이지에서 onbackpressed를 사용하여 앱을 종료하고, 다른 경우 이전 페이지로 이동

목표 : 홈페이지에서 백 버튼을 누를 때 나는 단지 아래의 토스트 메시지를 표시하고 싶습니다

. 사용자가 홈페이지와 다른 페이지에있을 때 뒤로 버튼을 누르면 이전 페이지로 돌아갑니다.

어떻게 그렇게 할 수 있습니까?

private Boolean exit = false; 
@Override 
    public void onBackPressed() { 
     if (exit) 
      this.finish(); 
     else { 
      Toast.makeText(this, "Press again to close the app.", 
        Toast.LENGTH_SHORT).show(); 
      exit = true; 
      new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        exit = false; 
       } 
      }, 3 * 1000); 

     } 

    } 

답변

0

어떤 페이지인지 알기 위해서 변수가 있어야합니다.

private Boolean exit = false; 
@Override 
public void onBackPressed() { 
    if(page != "homepage"){ 
      super.onBackPressed(); // Calls the Overriden Method 
    } 
    else 
    { 
    if (exit) 
     this.finish(); 
    else { 
     Toast.makeText(this, "Press again to close the app.", 
       Toast.LENGTH_SHORT).show(); 
     exit = true; 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       exit = false; 
      } 
     }, 3 * 1000); 

    } 
    } 

} 
+0

답장을 보내 주셔서 감사합니다. 그런 점을 염두에두고 있지만 실제로 문제는 그 변수를 정의하는 방법을 정확히 알지 못한다는 것입니다. 내 웹 사이트가 http://example.com이라고하면 페이지 변수를 어떻게 정의해야합니까? 왜냐하면 지금은 "페이지를 변수로 해석 할 수 없습니다"라는 오류가 발생하기 때문에 (이는 정상입니다). – Stan

+0

URL (http://yoururl.com/index.php)을 분리하고 'index.php'또는 '' – PaytoN

0

당신이 다음 그것은 또한 액션 바의에서는 backButton를 작성합니다 AndroidManifest.xml에
에 부모 활동을 선언하려고 활동과 작업하는 경우.

<activity 
     android:name=".MyActivity" 
     android:label="@string/app_name" 
     android:parentActivityName="com.projectname.homepage"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.projectname.homepage" /> 
    </activity> 

홈페이지에서이 코드를 BackPressed에 선언하십시오.

@Override 
public void onBackPressed() { 
    if (back_pressed + 2000 > System.currentTimeMillis()) { 
     Intent intent = new Intent(); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     super.onBackPressed(); 
    } else 
    Toast.makeText(this, "Press once again to exit!", 
      Toast.LENGTH_SHORT).show(); 
    back_pressed = System.currentTimeMillis(); 
}