2015. 4. 3. 14:47 안드로이드

FLAG_ACTIVITY_REORDER_TO_FRONT BACKGROUND 




아 .. 잡 배가 .... 진짜 .. 별꼴이네 


 상황은 FLAG_ACTIVITY_REORDER_TO_FRONT 이거 쓰다 보면 배가에서 

어처구니 없이 앱이 백그라운드로(BACKGROUND) 빠져 버릴때가 있다 


ABCB ---> 여기서 B가 FLAG_ACTIVITY_REORDER_TO_FRONT 옵션이면 

취소키 누르다 보면 앱이 백그라운드로 가는 상황이 생기는데 


이럴때 처리 방법 .. 참네 ... 우끼네 


찾은 곳 

https://code.google.com/p/android/issues/detail?id=63570#c2


안드로이드 참 ... 할때 마다 실망이야 짜식아




소스코드 

boolean mIsRestoredToTop = false;


@Override

protected void onNewIntent(Intent intent) {

// TODO Auto-generated method stub

super.onNewIntent(intent);

Utils.Print("BaseActivity onNewIntent " + strPackageName);

mIsRestoredToTop = false;

if ((intent.getFlags() | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) > 0) {

mIsRestoredToTop = true;

}

}


@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)

public void finish_FLAG_ACTIVITY_REORDER_TO_FRONT() {


Utils.Print("mIsRestoredToTop " + mIsRestoredToTop);

if (android.os.Build.VERSION.SDK_INT >= 19 && !isTaskRoot() && mIsRestoredToTop) {

// 4.4.2 platform issues for FLAG_ACTIVITY_REORDER_TO_FRONT,

// reordered activity back press will go to home unexpectly,

// Workaround: move reordered activity current task to front when

// it's finished.

// 이게 보니깐 액션 유저가 아닌게 백그라운드로 가면 포그라운드로 올려라 라는 명령어네요

ActivityManager tasksManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

tasksManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION);

}

}



posted by 욱이다