我有一个在后台运行的服务,当满足某些条件时,我需要在活动的顶部显示一个窗口。我应该能够在活动之间导航,并且该窗口应该始终保持静止,直到用户将其解雇为止。
选项:
我尝试使用Dialog Theme进行活动。这种方法的问题在于它将在那一刻的活动之上。如果我打开另一个活动,“活动对话框”将在这个新活动的后面。
我想实现一个具有框架布局的BaseActivity,以便在每次打开新活动时显示此“窗口”。问题是再次显示它不应该,窗口应该是静态的,同时活动正在改变。还不确定如何在服务中调用事务管理器来添加片段。
我读到了一些关于在Window Manager上附加View的服务的内容。这个问题是我不确定这是不是一个好习惯。
有什么想法?谢谢!
答案 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)
您可以为您的应用发送声明明确的广播接收器,一旦服务完成,则会自动向父活动发送消息。在此活动中,您将看到顶部的视图,可见性消失,一旦您收到广播,就会更改可见性