2013-12-16 37 views
0

我正在創建應用程序以顯示每個特定時間(由用戶指定)的對話框活動。我用Timer來做到這一切,一切都很好。但是當我回到主屏幕時,沒有出現對話框活動,只顯示主要活動,因爲一旦我再次打開應用程序,我發現定時器已經打開了多少個對話框活動。那麼,我如何讓對話活動持續顯示設備中的任何位置?如何使活動在主屏幕上運行?

驗證碼:

   tt = new TimerTask() 
       { 
        @Override 
        public void run() { 
         runOnUiThread(new Runnable() { 

          @Override 
          public void run() { 
           Intent openD = new Intent(MainActivity.this,Dialog.class); 
           openD.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
           startActivity(openD); 

          } 
         }); 
        }  
       }; 
       t = new Timer(); 
      t.schedule(tt,0,5000); 

回答

0

因爲當你回家時按鈕你的活動進入暫停狀態然後銷燬它因此它不會把你的計時器邏輯放在一個服務並從那裏給你打電話你的活動這樣當你回到家時屏幕你的邏輯仍然保持在運行狀態。

務必閱讀活動&服務的生命週期中的Android

http://developer.android.com/guide/components/services.html

另請注意,如果你希望你的活動,以彈出所有的時間上的某些事件,確保你的服務持久化。

+0

我已經改變了後退鍵功能,以不破壞活動,只保留它在後臺運行,就像你點擊主頁按鈕 –

+0

如果你在後臺進入,你的活動有資格銷燬,也在後臺活動和其所有進程保持暫停狀態。 – Techfist

+0

我重構了我的代碼以在服務中運行Timer,並且它可以工作,但是當對話框活動出現時,它將與主要活動一起出現。我只想顯示對話框活動而不打開應用程序。我如何做到這一點? –

相關問題