본문 바로가기
반응형

안드로이드44

[Android] 안드로이드_알림(바) 구현하기 5 - 클릭 시 Activity로 넘어가기 (feat. PendingIntent) PendingIntent를 이용한 Notification 클릭 시 반응하기Notification 알림을 클릭 시 해당 정보를 화면에 보여주거나 하기 위해 이동할 필요성을 느껴 찾아보고 직접 적용한 결과를 기록해두고자 한다.Notification에서 클릭 시 Acitivity로 이동하기 위해선 여타 Acitivity 이동때 Intent를 쓰는거와 마찬가지로 Pendingintent 라는것을 사용해야한다. PendingIntent mPendingIntent = PendingIntent.getActivity( MainActivity.this, 0, // 보통 default값 0을 삽입 new Intent(getApplicationContext(),CustomNotiActivity.class), PendingI.. 2019. 11. 24.
[Android] 안드로이드_Activity 중복 실행 방지 (feat. launchMode) Activity 중복 실행 방지 Activity를 Dialog 로 만들었을때, Notification으로 Activity Dialog로 들어올때 해당 Activity가 계속해서 화면에 띄어지는 현상이 벌어지는데 해당 중복 실행을 해결해보자.좀 더 많이 찾아보진 않았지만 실제로 적용해 사용하는것은 launchMode="singletask" 로 막아주는것이다. 그런데 이런 방법은 액티비티 스택 관리측면에서 앱 유지보수에 어려움을 가중시킨다는 의견이 있다. 아래 블로그에 해당 의견과 해결방안이 있기에 참고하면 좋을거같다. https://like-tomato.tistory.com/156 2019. 11. 23.
[Android] 안드로이드_UI Thread 외부에서 UI 작업 호출하기 (feat. runOnUiThread) runOnUiThread 개념 및 사용UI Thread 외부에서 UI를 호출해 작업하려다보니 에러가 발생하는데 android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 이게 안드로이드 OS 는 UI 자원 사용을 UI Thread에서만 가능하도록 만들었기 때문에 외부에서 접근하여 작업하려다보니 생기는 에러라고 한다. 손쉽게 runOnUiThread를 이용하여 외부에서 접근하는 방법에 대해 알아보자.Activity의 runOnUiThread를 이용하여 해당 작업을 UI Thread를 호출해 작업하면 에러없이 잘 작동한다.new Thre.. 2019. 11. 23.
[Android] 안드로이드_TextView 에 그림자(Shadow) 효과 적용하기 TextView에 Shadow 효과 적용하기 layout 에서 TextView를 클릭하고 All Attributes를 눌러보면 Shadow를 이루고 있는 4개의 속성이 보일것이다. 각각 shadowColor , shadowDx, shadowDy, shadowRadius 이 네가지만 기억하면 손쉽게 다룰수 있는 효과이다. xml에 직접적으로 적용해보면 다음과 같이 적용할 수 있고 결과도 바로 확인이 가능하다.(이미지가 생각보다 작다..)android:shadowRadius="7.0" android:shadowDx="7.0" android:shadowDy="7.0" android:shadowColor="#000000" Radius 는 그림자의 둥근 정도 (테두리 같은거 설정해줄때 많이 써봐서 눈치로 안다.).. 2019. 11. 21.
[Android] 안드로이드_다른 Activity에 있는 메서드 호출하기 (feat. Context) Context를 활용한 다른 Activity에 있는 메서드 호출 하기다른 클래스에서 Activity를 Context를 활용해 호출하는 방법이다. 클래스의 생성자를 이용해 Activity의 Context를 넘겨줘 해당 Context로 Activity의 메서드를 호출하는 형식이다.private Context mContext; public SlideMenuView(Context context) { this.mContext = context; }이런식으로 Context를 받을수 있게 생성자에 선언을 해두고 ((Activity) Context).메서드(); 이런식으로 호출하면 된다. ((MainActivity) mContext).openFinishSync(); 2019. 11. 21.
[Android] 안드로이드_알림(바) 구현하기 4 - 알림을 사용자가 못지우게 계속 유지시키기 (feat. setOngoing) 알림을 사용자가 못지우게 계속 유지시키기지속적인 작업을 할 때 시작할때 알림을 알림바에 띄워주고 종료할때 같이 종료시켜줘야하지만 사용자가 지울수 있다면 참 난감한 상황이 발생할 수 있는데 필요에 따라서 사용자가 지우지 못하도록 막을수 있는 방법이 있어 기록해두고자 한다.Notification을 이용하여 기본적으로 다음과같이 구현을 하게된다면 NotificationCompat.Builder 에서 ongoing 을 설정해 주면 된다. //알림창 생성 (기본 창만) private void basicNotiCreate(){ NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this,NOTIFICATION_ID) .se.. 2019. 11. 18.
[Android] 안드로이드_알림(바) 구현하기 3 - Notification 알림 제거 및 종료하기 Notification 알림 제거/종료 하기사용자가 알림을 제거하는게 아니라 특정시점에 알림을 자동으로 제거하도록 구현하고자 할때 사용하면 좋다.알림을 제거하는 방법은 매우 간단하다. Notification을 build를 할 때 NotificationManager 를 통해 build를 진행하는데 삭제 역시 이와 마찬가지로 NotificationManager를 통해 종료를 시킨다. NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notificationManager.cancel(1); // cancel(알림 특정 id) // 이전에 있던 모든 Notification 알림 .. 2019. 11. 18.
[Android] 안드로이드_알림(바) 구현하기 2 - 알림 진동 제거하기 알림 진동 제거하기안드로이드 알림(바) 를 구현해보면 알겠지만 기본적으로 알림에 진동이 포함되어있다.(물론 무음에 진동으로 처리를했을경우다 폰에서) 이러한 진동을 제거하는 방법에대해 기록해보자.앞서 오레오 버전부터는 채널을 생성하여 구현해야한다는것을 다뤘는데 이 진동제거 역시 해당 채널을 이용해서 제거할 수 있다. setVibrationPattern() 과 enabelVibration()을 이용하여 제거를 해보자. //채널 생성 private void createChannel(){ //시스템 서비스 생성 notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //채널 생성 if (Build.VERSION.SDK.. 2019. 11. 18.
[Android] 안드로이드_알림(바) 구현하기 1 (feat. NotificationCompat) - 기본적인 알림바 구현 및 참고자료 Notification을 이용한 알림바 구현 1 깊게 파고들어가 보진 않아서 직접 알림바를 구현하는데 사용한 것들을 위주로 우선 가볍게 알림바에 띄우는 정도로만 정리해두고 차차 상세하게 기록하고자 한다.알림바 구현방법에 대해 이것저것 검색해서 따라하다가 잘 안되는 경험을 했는데 이게 Oreo(오레오) 버전부터 구현 방식이 바뀌어서 생긴 현상이다.(오레오 이전의 구현방식의 정리된 블로그가 많은 편이다.) 오레오 이상버전부터는 반드시 채널을 생성해 줘야한다.(채널 생성 부분에서 VERSION을 체크하는데 저건 꼭 해줘야한다 어차피 안해주면 빨간줄이 뜬다.)NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIF.. 2019. 11. 18.
반응형
TOP