안드로이드 배경화면에 팝업 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>
질문은 댓글이나 방명록에 남겨주세요.
'IT > 안드로이드' 카테고리의 다른 글
안드로이드 이미지 문자 인식 Android Tesseract (0) | 2019.06.27 |
---|---|
안드로이드 동영상 배경화면 만들기 (2) | 2017.07.17 |
안드로이드 ListView 클릭 안될 때 (3) | 2017.07.14 |