2017-10-12 108 views
-4

我在後臺運行的服務,在滿足一定的條件,我需要在活動的頂部顯示一個窗口。我應該能夠在活動之間進行導航,並且該窗口始終應保持靜止,直到用戶將其解除爲止。顯示所有活動的頂視圖

選項:

  1. 我試着用對話的主題活動。這種方法的問題在於,它將在當時的活動之上。如果我打開另一個活動,則「活動對話框」將位於此新活動的後面。

  2. 我想實現的是,爲了顯示這個「窗口」每次打開一個新的活動時間內有一個框架佈局的BaseActivity。問題是再次顯示,不應該,窗口應該是靜態的,同時活動正在改變。也不知道如何調用服務中的事務管理器來添加片段。

  3. 我讀一些關於有一個服務,將附着在窗口管理器查看。問題在於我不確定這是否是一種好的做法。

有什麼想法?謝謝!

+0

https://www.androidhive.info/2016/11/android-floating-widget-like-facebook - 聊天頭/ – Vij

+0

對於本病的建議你使用BaseActivity單個活動的應用程序 - 在活動中得到最高視圖只是更改視圖時,您的服務中獲得的數據和片段等任務的工作是在活動的底部只需更換片段它沒有關閉你的活動上層觀點....... –

回答

1
I have one solution for that 

1. create a static variable in app 

public static Boolean isMatch=false ; 

2. either create dialog or layout that you have to show in activity and manage its show and hide. 

2. Create Thread in activity and add 1000 timer 


Thread thread= new Thread() { 

         int wait = 0; 

         @RequiresApi(api = Build.VERSION_CODES.M) 
         @Override 
         public void run() { 
          super.run(); 

           while (wait < welcomeScreenDisplay) { 
            sleep(100); 
            if(isMatch) 
              { 
             dialog.show(); 

             } 
            wait += 100; 

           } 
         }//run 
        };//welcome thread 
        t.start(); 

3. in service when the condition is true update the value of the variable 


isMatch =true ; 
0

您可以發送聲明一個明確的廣播接收器爲您的應用程序,一旦該服務完成後自動將消息發送給父活動。在這個活動中,你將不得不在與知名度上走了一個觀點,一旦你接收廣播變化知名度