在所有活动之上显示视图

时间:2017-10-12 11:04:26

标签: android android-service android-windowmanager

我有一个在后台运行的服务,当满足某些条件时,我需要在活动的顶部显示一个窗口。我应该能够在活动之间导航,并且该窗口应该始终保持静止,直到用户将其解雇为止。

选项:

  1. 我尝试使用Dialog Theme进行活动。这种方法的问题在于它将在那一刻的活动之上。如果我打开另一个活动,“活动对话框”将在这个新活动的后面。

  2. 我想实现一个具有框架布局的BaseActivity,以便在每次打开新活动时显示此“窗口”。问题是再次显示它不应该,窗口应该是静态的,同时活动正在改变。还不确定如何在服务中调用事务管理器来添加片段。

  3. 我读到了一些关于在Window Manager上附加View的服务的内容。这个问题是我不确定这是不是一个好习惯。

  4. 有什么想法?谢谢!

2 个答案:

答案 0 :(得分: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 ;

答案 1 :(得分:0)

您可以为您的应用发送声明明确的广播接收器,一旦服务完成,则会自动向父活动发送消息。在此活动中,您将看到顶部的视图,可见性消失,一旦您收到广播,就会更改可见性