PreferenceActivity의 기본 아이템들은 타이틀, 서머리 또는 체크박스만 있기 때문에 너무 단조롭다. 그래서 안드로이드는 오버라이드해서 내 맘대로 UI를 바꿀수 있도록 제공한다. 결국, 아래 그림처럼 seekbar를 넣어서 좀 더 다이나믹하고 인터랙티비한 형태로 바꿀 수 있다. 방법은1. Preference를 extends 하는 클래스를 하나 만든 다.2. 새로 만든 클래스에서 반드시 onCreateView를 만들어 줘야한다. @Override protected View onCreateView( ViewGroup parent ) { super.onCreateView(parent); mLayoutInFlater = (LayoutInflater) getContext().getSystemServic..
앱을 테스트 하던 중, 이벤트를 받고 startActivity를 했는데, mainActivity가 화면에 2-3초 후에 나타나는 현상이 발생했습니다. 왜 이렇게 느리지 하는 생각이 들어 개선점을 찾아 보기로 했지요. 속도를 개선해야 겠다 화면을 많이 그려서 그런가... 리소스를 잡아먹는 코드가 있나 고민에 빠졌죠.코드를 이것저것 빼도 전혀 빨라지지가 않네요. 그런데 이것저것 테스트를 하는 중에 Back 키로 앱을 나간 후 실행하면 바로 뜨고, Home 키로 나간 후 실행하면 뜨지 않는다는 차이점을 발견했지요. 홈 키는 뭐가 다를까?검색을 해 보니 안드로이드에는 일명 5초 룰 이라는 것이 있네요.홈키로 앱을 숨기면 그 activity는 백그라운드에서 startActivity를 해도 5초 동안 꼼짝하지 않는..
타이머를 써야 하나 flag를 써야 하나 고민도 해봤는데, 안드로이드에서 volume long key 인식하는 방법입니다. @Override public boolean onKeyLongPress(int keycode, KeyEvent event){ if(keycode == KeyEvent.KEYCODE_VOLUME_UP || keycode == KeyEvent.KEYCODE_VOLUME_DOWN) { Log.d(TAG, "Long press KEYCODE_VOLUME_UP"); return true; } return super.onKeyLongPress(keycode, event); } @Override public boolean onKeyDown(int keycode, KeyEvent event) { ..
개발 중 애드몹(admob) 광고를 달고 테스트 하다 보면 조회수가 올라갈 텐데요, 앱을 테스트할 때 무효 노출이 발생하지 않도록 하려면 테스트 광고를 요청하는 것이 좋습니다. 방법은 코드 상으로 adRequest를 호출할때, addTestDevice를 하면 됩니다. 릴리즈 시에는 .addTestDevice() 부분은 주석 처리하면 됩니다. mAdView = (AdView) findViewById(R.id.adMobView); AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) // 테스트 광고 요청 .build(); mAdView.loadAd(adRequest); 출처: https://deve..