2017-10-12 1 views
-4

백그라운드에서 실행되는 서비스가 있으며 일부 조건이 충족되면 활동 상단에 창을 표시해야합니다. 나는 액티비티 사이를 탐색 할 수 있어야하며, 사용자가이를 닫을 때까지 윈도우는 항상 정적 상태를 유지해야한다.모든 활동 상단에보기 표시

옵션 :

  1. 나는 대화 테마를 사용하여 활동했습니다. 이 접근 방식의 문제점은 그 순간에 있었던 활동의 최상위에있을 것이라는 점입니다. 다른 활동을 열면이 활동 뒤에 "활동 대화 상자"가 생깁니다.

  2. 새로운 액티비티를 열 때마다이 "창"을 보여주기 위해 프레임 레이아웃이있는 BaseActivity를 구현할 생각입니다. 문제는 그것이 다시 보여지고 있으며, 그렇게해서는 안된다는 것입니다. 활동이 바뀌면서 창은 정적이어야합니다. 또한 프래그먼트를 추가하기 위해 서비스 내부의 트랜잭션 관리자를 호출하는 방법을 모르겠습니다.

  3. 나는 창 관리자에보기를 첨부 할 서비스가있는 것에 대해 읽었습니다. 이 문제는 좋은 연습인지 잘 모르겠다는 것입니다.

의견이 있으십니까? 감사!

+0

https://www.androidhive.info/2016/11/android-floating-widget-like-facebook -chat-head/ – 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

앱에 대한 명시적인 브로드 캐스트 리시버를 보낼 수 있으며 서비스가 완료되면 자동으로 부모 작업에 메시지를 보냅니다. 이 활동에서 화면 상단의보기가 사라지고 가시성이 변경되면 가시성이 변경되면