2016-09-25 73 views
-1

我曾嘗試在其他問題後退按鈕行爲像Home鍵的描述使用下面的代碼,但它不工作:Android應用:BACK按鈕的作用類似HOME鍵---問題

@Override 
public void onBackPressed() { 
moveTaskToBack(true); 
} 

我沒有要點評論別人的問題,因爲我已經打開了這個問題。

第一個問題:HOME按鈕正在讓應用程序退出。第一次復位智能手機後,HOME按鈕將App置於後臺(不退出)

第二個問題:我試圖讓BACK按鈕像上面的代碼一樣充當HOME按鈕,但是BACK按鈕僅被禁用。

。在第一次成功登錄和Twitter身份驗證之後,當用戶單擊BACK按鈕或HOME按鈕(Android按鈕)時,應用程序必須保持在後臺(不退出)。

我在做什麼錯?

感謝

的應用程序: http://play.google.com/store/apps/details?id=com.xranky

固定問題2:下面@zilk代碼

固定問題1:你必須插入下面的代碼上的登錄/啓動屏幕

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
     // Activity was brought to front and not created, 
     // Thus finishing this will get us to the last viewed activity 
    finish(); 
    return; 
    } 

    // Regular activity creation code... 
    } 

來源: How to return to the latest launched activity when re-launching application after pressing HOME?

回答

0

對此使用下面的代碼。

public void onBackPressed() { 
       super.onBackPressed(); 
      } 
+0

當我插入上面的代碼,與HOME鍵的問題,1是固定的(並不需要重置智能手機的應用程序切換到後臺)。但是,BACK按鈕使應用程序退出。 –

+0

我不明白2點。 –

0

下面的代碼沒有完成你的活動,但是你的應用程序需要像home按鈕這樣的背景。

public void onBackPressed() {  
    Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    startActivity(intent); 
} 
+0

它沒有工作。當我點擊HOME按鈕時,應用程序將轉到後臺。再次點擊應用程序圖標後,打開登錄屏幕(不是去前臺後的最後一個屏幕)。 –

+0

@AlexBarros這是問題的答案。 「打開登錄屏幕(而不是在進入後臺之前的最後一個屏幕)。」是您應該在登錄活動內部控制的另一個問題。也許你可以在關閉之前存儲最新的活動,並在需要時打開它。 – ziLk

+0

你是對的。使用上面的代碼,當我點擊「返回」或「主頁」按鈕時,應用程序將轉到後臺。之後,當我點擊應用程序圖標時,應用程序會打開第一個屏幕(登錄屏幕),當我點擊後退按鈕時,應用程序會轉到背景前的最後一個屏幕。我正在爲商店上次活動尋找一個很好的解決方案。 –

0

在你的活動中你必須重寫onBackPressed()。

@Override 
     public void onBackPressed() { 
      super.onBackPressed(); 
      Utils.redirectToHomeActivity(this); 
     } 

Utils.java

public static void redirectToHomeActivity(Activity activity) { 
      if (activity == null || activity.isDestroyed()) 
       return; 
      if (!activity.isTaskRoot()) return;//Return whether this activity is not in the root of a task. 

      Intent intent = new Intent(activity, MainScreenActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);//this is use to start new activity 
      activity.startActivity(intent); 
     }