[안드로이드 공부] 201

ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to bind to services

브로드캐스트 리시버에서 또 다른 브로드캐스트 리시버를 등록하려고 할때 발생하는 에러다. android.content.ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to bind to services 그런데, 이것도 타이밍이 있다. 분명 디스트로이가 된 후에 등록 하려고 했으나, 계속 같은 에러가 발생 할 때가 있다. 왜?명시적으로 이전에 사용했던 서비스를 완전히 죽여 주지 않아서 그렇다. 1. A 리시버에서 B서비스를 생성 하고 사용 한 뒤,2. 다시 A리시버에서 B서비스를 생성 하려고 하면 발생한다. 즉, 1번 이후에 반드시 A에서 생성한 B를 죽여주자.

[FLAG_UPDATE_CURRENT의 비밀]Permission Denial: broadcasting Intent is not exported from uid

같은 어플리케이션 내에서 브로드캐스트를 주고 받는데 외부에서 접근하려고 한다는 에러가 뜬다. 참으로 골치 아픈 에러다.... W/BroadcastQueue: Permission Denial: broadcasting Intent act=com.comostudio.xxx flg=0x10000010 cmp=com.comostudio.xxx/.receiver.yyy } bnds=[556,596][768,692] from com.comostudio.xxx (pid=-1, uid=10000) is not exported from uid 10050 due to receiver com.comostudio.xxx/.receiver.yyy 아무리 인터넷을... 구글링을 해봐도 딱히 맞는 답이 없다. 1. 물론 export..

java.lang.RuntimeException: Performing stop of activity that is not resumed

보통 스플래시, 로딩화면을 넣은 경우 발생함. 이런 경우 앱 포즈시 발생하는 에러! 에러: java.lang.RuntimeException: Performing stop of activity that is not resumed 해결 : private final int SPLASH_DELAY_MESSAGE = 100; Handler splashHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { switch (msg.what) { case SPLASH_DELAY_MESSAGE: startActivity(new Intent(mContext, MainActivity.class)); d..

android.content.ReceiverCallNotAllowedException

리모트 서비스등에서 발생하는 에러로 컨텍스트를 가지고 다니지 못할 때 발생한다. android.content.ReceiverCallNotAllowedException: components are not allowed to register to receive intents위젯, 브로드캐스트, 서비스등과 같이 유령같이 나타나는 얘들은 항상getContext가 아니라 getApplicationContext()를 써서 컨택스트를 들고 다녀야 한다. 스태틱 개념처럼 생각하면 될 듯.

안드로이드 adb 멀티 디바이스 사용 방법

여러대를 컴퓨터에 물려 놓고 사용하다 보면 한 번에 처리 해야 할 일들이 많지만 그때마다 기기를 뽑았다 꽃았다 하는 건 너무 불편하다. 디바이스 번호adb devices를 하면 기기 번호가 나온다adb -s 기기번호 shell pm clear 패키지명 ----> 특정 기기의 데이터만 삭제한다. USB에 물려있는 기기adb -d 에뮬레이터adb -e 요렇게 사용하면 뽑고 꽂고.... 난리 치지 않아도 된다.

안드로이드 툴바 우측 서랍 아이콘 만들기

안드로이드 액션바 우측에 원하는 이미지로 메뉴를 만들어 보자. 상위 버전의 경우 기본적으로 만들어지지만, 하위 버전의 경우에는 하나 하나 해줘야만 한다. 애플은 OS 버전이 올라가면 참 난감하게도 예전 API를 통보도 없이 없애 버리지만, 아직 구글은 친절하게 하위 버전에서도 사용 할 수 있도록 많은 지원을 아끼지 않고 있다. 1. 우선 툴바를 만들고2. 툴바에 메뉴를 붙이고3. 메뉴에 붙을 이미지를 Drawable로 만든다.4. 만든 drawable을 툴바에 붙인다. toolbar.setOverflowIcon(drawable); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setTitle(""); toolbar.addView(cust..