2012-11-18 97 views
0

我打電話一個活動,點擊狀態欄的通知,它有一個完整的按鈕。點擊btn。我有folllowing碼 -活動沒有正確關閉

public void completeTask(){ 
     taskDBAdapter.deleteReminder(rowId); 
     taskDBAdapter.close(); 
     Intent intent = new Intent(this, TaskManagerActivity.class); 
     startActivity(intent); 
     finish(); 

    } 

whhen BTN新活動(TaskManagerActivity)被打開properly.But如果我重新打開我的應用程序仍試圖打開這個活動,而不是我的默認登陸活動我點擊完成。對此有任何幫助。

編輯 -

我試過重新定位我的完成()語句。仍然沒有工作。

編輯1.1 - 好吧我會在這裏提供一些細節。假設我的應用程序有兩個活動

  1. 主要活動
  2. 通知活動

我的應用程序創建一些通知顯示在狀態欄上。所以,只要我點擊狀態欄通知actvty將打開。現在有一個名爲Complete的按鈕,點擊該按鈕將激發代碼,並打開主要活動(在代碼TaskManagerActivity.class中)。但是當我按下我的應用程序中的按鈕並再次打開它後,它會在它應該觸發主要活動(因爲它正在啓動活動)時打開通知活動。

感謝, 雷

回答

2

這是默認的方式機器人的功能。如果您按主頁按鈕,然後再次打開您的應用程序,它將恢復應用程序以前的狀態(除非由於內存限制而終止了應用程序進程和活動)。所以你實際上並沒有重新啓動你的應用程序,只能恢復它。

如果你想退出應用程序,然後按後退按鈕。現在,當您重新打開應用程序時,原始活動將啓動。

請勿修改此行爲。這是默認的系統行爲,用戶期望它以這種方式工作。您的應用精細:-)

+0

我已經添加了一些details.Can你請看看,讓我知道如果你明白這個問題/需要更多的投入。 – RayKaushik

0

- 所有這些您所遇到的行爲首先是Android正在以功能所作的方式,而且當用戶收到電話,而這個應用程序是開放的,在完成應用程序後,他一定會想要回到他離開應用程序的狀態。

不過,如果你想這樣的說法,這裏是.....

-確保您的應用程序運行它,只有單個實例使用android:launchMode="singleTask"android:launchMode="singleInstance"

-然後finish()您的活動在onPause()

@Override 
void onPause() 
    { 
    super.onPause(); 
    finish(); 
    } 
+0

我已添加一些細節。如果你瞭解這個問題/需要更多的意見,你可以請看看並告訴我。 – RayKaushik