Skip to content

Android.app.Activity

Android의 android.app.Activity 클래스 사용방법 정리.

Methods

getLauncherLargeIconDensity

사용할 density를 리턴한다.

Simple example

액티비티에서 새로운 액티비티를 호출하고싶을 경우 아래와 같이 사용한다. (NewActivity 클래스는 별도로 작성해야 한다)

final Intent kIntent = new Intent(this, NewActivity.class);
startActivity(kIntent);

그 후, AndroidManifest.xml에서 아래와 같이 액티비티를 등록해야 한다.

<manifest>
  <application>
    ...
    <activity android:name="NewActivity"></activity>
    ...
  </application>
</manifest>

사용완료 후 액티비티 종료는 아래와 같이 진행한다.

finish();

액티비티 잠금화면 풀기

잠금화면을 해제할 해당 액티비티의 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 획득 방법

현재 실행중인 최상위 화면(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)을 추가해야 한다.

<uses-permission android:name="android.permission.GET_TASKS" />

startActivityForResult / onActivityResult

액티비티간 정보를 주고, 받을 수 있다.

  1. 기본적으로는 액티비티를 호출할 때, startActivity()메소드를 사용하지만, 이 경우에는 startActivityForResult() 메소드를 사용해야 한다.
  2. setResult(RESULT_OK, intent);를 실행해 결과를 함께 넘겨주고, 결과는 주지 않고, 뭔가 수행했다는 신호정도만을 돌려줄땐, setResult(RESULT_OK) 를 실행한다.
  3. 기존 액티비티(startActivityForResult()를 호출한 액티비티)는 결과를 onActivityResult() 메소드를 override해서 자신이 되돌려 받은 결과로 처리하고 싶은 것을 구현하면 된다.

Fragment에서 사용시 주의사항

간혹, onActivityResult()requestCode값이 65627등과 같이 엉뚱한 값이 나타날 경우, startActivityForResult()호출을 해당 Activity에서 정상적으로 사용했는지 확인해야 한다. 이런 실수는 Fragment를 사용했을 경우 나타날 수 있는데, this.startActivityForResult()가 아닌, getActivity().startActivityForResult()를 사용하여 호출하면 된다.

See also

Favorite site

References


  1. Android_startActivityForResult_onActivityResult.pdf