본문 바로가기

안드로이드 팁

안드로이드에서 현재 최상위 Activity 값 알아보기 안드로이드 어플을 개발하면서 Activity중 어느 Activity가 현재 최상위에 나와있는지 조건문으로 확인을 하려고 했는데, 어디서 봐야할지를 몰라서 고민하던중 찾은 방법이다. ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List Info = am.getRunningTasks(1); ComponentName topActivity = Info.get(0).topActivity; String topactivityname = topActivity.getPackageName(); 해당 소스를 작성한뒤 Log.d(TAGNAME, topactivityname); 위와 같이 로그를 찍어보면 최상위 Activity.. 더보기
안드로이드 Cursor 사용시 Finalizing a Cursor that has not been deactivated or closed. 문제 해결. 안드로이드 앱을 만들면서 앱자체가 죽어버리지는 않는데, LogCat 상에서 붉은색 글씨로 Finalizing a Cursor that has not been deactivated or closed. 이라는 메시지가 나왔다. 검색을 해보았더니 메모리 릭이 발생하는 부분이라서 어찌되었든 수정이 필요한 부분이었다. 처음에는 단순히 try { } catch(SQLException e){} 정도로만 처리해주면 될 줄 알았는데, try 문 안에 넣어줘도 결과는 마찬가지였다. 소스를 전체적으로 다시 보면서 커서 사용시 닫아줘야 하는데 실제로 안닫아 주고 그냥 넘어간 부분들이 많았다. 예를 들면 Cursor mCursor = null; mCursor = mDb.query(true, DATABASE_TABLE, new .. 더보기