1

您好,最終我想要做的是在屏幕上有一個DialogFragment顯示,以確認用戶想要退出該應用程序。如果用戶說他們確實希望關閉應用程序,那麼應用程序將關閉。如果用戶沒有使DialogFragment消失。DialogFragment無法識別finish()方法

我看到了在onClick方法中調用的finish()方法。但是這對我不起作用。

exitDialog.setPositiveButton("Shutdown", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      //Exit the app. 
      finish(); 
     } 
    }); 

我得到的錯誤是「finish()」無法解析。我想知道這個問題是否與我在DialogFragment類中使用finish()的事實有關?或者是別的什麼?

感謝

回答

1

片段沒有finish()。你可能想要完成整個活動:

getActivity().finish() 
+0

這似乎工作。然而,當我點擊三星Galaxy S4 Active的中心按鈕(在此設備上測試)時,它仍然顯示在最近的應用程序列表中,當您查看該應用程序的詳細信息時,它的強制停止不會變灰。這是否意味着該應用程序仍在運行/是否反映在logCat中? – 2015-02-10 22:18:01

+0

@AlecSherwood Android應用程序不會「退出」 - 您不應該指望它們在特定時間運行或不運行。 – immibis 2015-02-10 22:22:51

+0

最後,如果我使用finish(),應用程序是否會停止收集位置數據並停止使用設備資源? – 2015-02-10 22:25:28

1

finish()是一個屬於Activity的方法。

嘗試使用:

getActivity().finish(); 
0

您可以使用:

  1. getDialog().dismiss();關閉對話框&
  2. getActivity().finish();完成當前活動。