2011-06-05 55 views
1

在我的項目中有幾個類。我們稱他們爲A,B,C,D。 我發現了兩個問題:例如我從「A」班到「B」再到「C」。在「B」類中有按鈕和計數器。當我第一次在班級「B」中推動一個btn時,一個計數器開始並且例如當計數器在6號時,等級「C」打開。當我從班級「C」回到班級「B」(通過點擊我的手機的後部btn)時,計數器在第6位,而不是0.Android後退問題

第二個問題:我從「A」 「B」,然後到「C」,然後回到「B」,然後到「C」等等。當我在班級「C」中推回btn時,我應該回到班級「B」然後到「A」然後退出。但是這裏發生了什麼:我回到「B」級,然後回到「C」級,然後上課「B」,然後上課「A」,因此它回到了之前打開的所有類。

更重要的是,我的退出按鈕(Main.this.finish();)只在開始firworks。如果我經歷了一些類,它的行爲像後退按鈕,從而退出應用程序是不可能的。

我不知道,如果這些問題是連接或沒有,但我想聽聽他們的意見

感謝

編輯:。我看了您的意見和建議的網頁現在,我想更具體爲。現在,我們來談談三個活動t.java,CustomizeDialog.java和Highscores.java。當用戶打開Start.java(通過單擊Main.java中的按鈕)時,會啓動一個計數器。然後在3秒鐘後,用戶自動轉發到CustomizeDialog.java來寫他的名字。在該對話框上單擊確定後,他將被轉發到HighScores.java。現在,如果他點擊後退按鈕,他會回到Start.java。這裏的計數器就是它之前的位置(我知道這是Android的行爲)。

所以 首頁 - >開始 - > CustomizeDialog - > Higshcores - >單擊後退 - >啓動 (CustomizeDialog不是一個活動,而是一個對話框,這就是爲什麼它要回來的時候省略)

我試着這個清單中的,但什麼都不做:

<activity 
    android:name=".Start" 
    android:label="@string/app_name" 
    android:finishOnTaskLaunch="true"> 
</activity> 

這是我如何使用計數器:

在一個按鈕偵聽在onCreate方法:

counter = new MyCount(3000,1000); 
if (started == false) 
{ 
    counter.start(); 
    started = true; 
} 

外onCreate方法:

public class MyCount extends CountDownTimer{ 
     public MyCount(long millisInFuture, long countDownInterval) { 
     super(millisInFuture, countDownInterval); 

     } 

public void onFinish() { 
//filewrite 
CustomizeDialog customizeDialog = new CustomizeDialog(Start.this); 
     customizeDialog.show(); 
    }; 

@Override 
     public void onTick(long millisUntilFinished) { 
     tv.setText("" + millisUntilFinished/1000); 
    } 

和OK按鈕聽者CustomizeDialog:

Intent intenthighscores = new Intent(mActivity, Highscores.class); 
     mActivity.startActivity(intenthighscores); 
//Activity mActivity; is declared at the beginning of the dialog 

我刪除了退出按鈕,因爲我讀這是不必要的,我會稍後再處理就像第二個問題一樣,如果這個問題仍然存在,因爲它與第一個問題有關。

回答

1
  1. 在活動C完成後,活動B不會重新創建。如果要重置計數器,請在onResume()活動方法B中執行。

  2. 我不知道什麼是問題。您是否覆蓋onBackPressed()onKeyDown()

  3. Main.this.finish()整理只有一個活動 - 活動主要。它沒有完成應用程序。

1

至於你的前兩個問題:這是正常的行爲,請參閱this article大約後退堆棧的詳細說明(也注意到,「類」是一個普遍的表達,你是在談論被稱爲Android應用程序組件活動)。

關於退出應用程序,請參閱this question和第一個答案。