본문 바로가기

[Android] Notification 에서 onNewIntent가 타지 않는 문제. How to call onNewIntent from Notification. launchMode 가 singleTask 혹은 singleTop 인 Activity에 intent를 보내게 되면, 존재 할 경우 onNewIntent, 존재하지 않을 경우 Activity가 새로 시작하게 된다. 일반적인 방법으로 액티비티를 호출할 때에는 startActivity로 호출하지만, Notification을 통해 호출할 경우 PendingIntent를 사용하는데, 액티비티의 모드가 singTask, singleTop 이며 존재하는데도 강제로 액티비티를 재시작시키는 경우가 있다. (아마도..안드로이드 레퍼런스에 코드만 보고 만들어서 그런건 아닐까 생각이 든다.) 정상적인 Activity lifecycle을 태우기 위해선, PendingIntent 생성시 requestCode를 반드시 넣어야한다... 더보기
[Android] 안드로이드에서 핸드폰번호(휴대폰번호) 추출. 딱히..설명도 없고.. 그냥 사용하면 됨! //TelephonyManager를 받아오고.. mTelephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); String telephone = mTelephonyManager.getLine1Number(); //전화번호를 받는다~ 더보기
[Android] 여러개 Intent를 묶어서 보내기. 앱을 만들 때, 제조사 또는 버전의 차이로 인해 인텐트 호출후 원하는 리스트가 표시되지 않을 때가 있다. 특히 카메라와 갤러리의 경우가 그렇다. 대부분의 개발자들은 호출 한번으로 카메라와 갤러리를 모두 보여주고 싶은데, 검색능력부족(?)으로 인해, 결국 따로 만드는 경우가 태반이다. 카메라와 갤러리를 동시에 호출할 수 있는 소스를 첨부한다. 먼저 인텐트들을 담을 리스트와와 카메라호출을 위한 인텐트, 그리고 패키지 검색을 위한 패키지 매니저, 마지막으로 카메라 패키지 정보를 담을 변수를 선언한다. final List cameraIntents = new ArrayList(); final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION.. 더보기
[Android] 다이얼로그(Dialog) 닫기 방지. 닫히지 않게 하기. 다이얼로그로 로그인 화면이나, 비밀번호 입력창 등을 만들기도 한다. 가장 많이 사용 하는 것이 AlertDialog.Builder 를 사용할텐데, 기존에 제공하는 리스너들을 Overriding 해서 사용할 경우 Ok, Cancel 버튼 클릭시 원하지 않게 창이 닫기게 된다. 아래의 방지코드를 넣게 되면 창이 닫기지 않게 된다. dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface arg0) { Button positiveButton = ( (AlertDialog) arg0 ).getButton(AlertDialog.BUTTON_POSITIVE); //Or Alert.. 더보기