안드로이드 배경화면에 팝업 Activtiy로 알림 처리하기

 


이 방법을 사용하면 푸시 알람이 올 때 배경화면에 팝업을 띄움으로써 사용자에게 자세한 정보를 보여줄 수 있게 된다.

 

1.    필요한 클래스 및 xml 파일

1)     Push Receiver : 안드로이드 디바이스에 Push message를 보내는 클래스

2)     Popup Activity : Push message 전송 시 배경화면에 출력되는 팝업 화면을 컨트롤하는 클래스

3)     Layout : 팝업 화면 출력 시 사용자에게 보여지는 UI

4)     Manifest : Activity를 추가하고 launchMode를 설정하기 위한 설정 파일


 

2.    구현

1)     Push Receiver에 아래의 코드를 삽입함으로써 특정 시점에 팝업 화면이 출력되도록 함 :

Intent intent = new Intent(context, PopupActivity.class);
Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(intent);

부가설명 :

FLAG_ACTIVITY_SINGLE_TOP : 호출되는 Activity가 최상위에 존재할 경우에는 해당 Activity를 다시 생성하지 않고, 존재하던 Activity를 다시 사용함.

FLAG_ACTIVITY_NEW_TASK : 새로운 태스크를 생성하여 그 태스크 안에 Activity를 추가함. 이 코드에서는 Activity가 아닌 곳에서 startActivity()를 하기 위해 사용.

 


2)     PopupActivity에서 필요한 설정을 함 :

+@ : 여기서 버튼 클릭 이벤트를 처리하면 된다.

public class PopupActivity extends Activity {
   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);

 

               // 타이틀 바 제거
       
requestWindowFeature(Window.FEATURE_NO_TITLE);

 

               // 설정을 위한 준비
       
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();

 

               // 팝업 화면 출력 시 배경이 검게 되지 않도록 함.
       
layoutParams.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;

 

               // 팝업 화면 출력 시 배경화면 투명도 설정

             layoutParams.dimAmount = 0.7f;

 

               // 설정을 적용함
       
getWindow().setAttributes(layoutParams);
       
setContentView(R.layout.activity_sos_popup);
   
}
}

 

 

3)     Layout : 본인이 원하는대로 커스텀해서 사용


 

4)     Manifest : Activity를 추가하고 launchMode를 설정함.

<activity
 
android:name="PopupActivity"
// 다른 Activity를 무시하고 오직 하나의 Activity만 출력되게 함.
 
android:launchMode="singleInstance" 
   android:screenOrientation="portrait"
   android:theme="@android:style/Theme.Translucent" >
</activity>

 

질문은 댓글이나 방명록에 남겨주세요.

+ Recent posts