Android.app.Activity
Android의 android.app.Activity
클래스 사용방법 정리.
Methods
getLauncherLargeIconDensity
- http://developer.android.com/reference/android/app/ActivityManager.html#getLauncherLargeIconDensity()
사용할 density를 리턴한다.
Simple example
액티비티에서 새로운 액티비티를 호출하고싶을 경우 아래와 같이 사용한다. (NewActivity 클래스는 별도로 작성해야 한다)
그 후, AndroidManifest.xml에서 아래와 같이 액티비티를 등록해야 한다.
<manifest>
<application>
...
<activity android:name="NewActivity"></activity>
...
</application>
</manifest>
사용완료 후 액티비티 종료는 아래와 같이 진행한다.
액티비티 잠금화면 풀기
잠금화면을 해제할 해당 액티비티의 onCreate()
메서드 안에 아래의 코드를 추가하면 된다.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
최상위 Activity 획득 방법
- http://blog.naver.com/bridge139/10081126303
- http://blog.naver.com/phkaa/143212084
- http://www.androidpub.com/228912
- 최상위-Activity-찾기
- http://www.androidpub.com/228912
현재 실행중인 최상위 화면(Top Activity)을 획득하는 방법은 아래와 같다.
import android.content.Context;
import android.app.ActivityManager;
import java.util.List;
// ...
ActivityManager mActivityManager = null;
mActivityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> rt = mActivityManager.getRunningTasks(1);
String runningTask = rt.get(0).topActivity.toString();
그리고, 아래와 같은 권한(Permission)을 추가해야 한다.
startActivityForResult / onActivityResult
액티비티간 정보를 주고, 받을 수 있다.
- 기본적으로는 액티비티를 호출할 때,
startActivity()
메소드를 사용하지만, 이 경우에는startActivityForResult()
메소드를 사용해야 한다. -
setResult(RESULT_OK, intent);
를 실행해 결과를 함께 넘겨주고, 결과는 주지 않고, 뭔가 수행했다는 신호정도만을 돌려줄땐,setResult(RESULT_OK)
를 실행한다. - 기존 액티비티(
startActivityForResult()
를 호출한 액티비티)는 결과를onActivityResult()
메소드를 override해서 자신이 되돌려 받은 결과로 처리하고 싶은 것을 구현하면 된다.
Fragment에서 사용시 주의사항
간혹, onActivityResult()
의 requestCode
값이 65627등과 같이 엉뚱한 값이 나타날 경우, startActivityForResult()
호출을 해당 Activity에서 정상적으로 사용했는지 확인해야 한다. 이런 실수는 Fragment를 사용했을 경우 나타날 수 있는데, this.startActivityForResult()
가 아닌, getActivity().startActivityForResult()
를 사용하여 호출하면 된다.
See also
- android.view.View
- android.app.Fragment
- Android:ActivityLifeCycle: 안드로이드 액티비티(Activity) 생명주기(Lifecycle)에 대한 설명.
- Android:Manifest: AndroidManifest.xml에 대한 설명. 화면방향 고정방법 등 수록.
Favorite site
References
-
Android_startActivityForResult_onActivityResult.pdf ↩