로딩중입니다
ProcessKill 사용 시 endSession 연동 : 안드로이드
2/27/2015 12:16:50 PM

ProcessKill 사용 시 endSession 처리 방법

안드로이드 앱의 종료를 처리할 때, ProcessKill 등의 강제종료 방식을 사용하는 경우에 애드브릭스 트래킹 데이터가 유실될 가능성이 있습니다.

애드브릭스의 트래킹 데이터는 IgawCommon.endSession() API가 호출될 때, 서버로 전송을 하는데, 가이드에서는 onPause()에서 API를 호출하도록 가이드를 하고 있습니다.


안드로이드 뒤로가기 버튼을 터치했을 때, 종료팝업을 노출하고 종료를 선택하였을 때, ProcessKill 등을 사용하는 강제종료 방식에서는 endSession API가 정상적으로 호출되지 않는 경우가 빈번하게 발생되고 있습니다. 


안드로이드 뒤로가기 버튼의 이벤트 액션에 다음과 같은 처리를 하여 endSession API가 정상적으로 호출되도록 처리하시는 것을 권장합니다.

public boolean onKeyDown(int keyCode, KeyEvent event){
	switch(keyCode){
	case KeyEvent.KEYCODE_BACK:

		IgawCommon.protectSessionTracking(this);

		new AlertDialog.Builder(this)
		.setTitle("종료확인")
		.setMessage("종료하겠습니까?")
		.setPositiveButton("예", new DialogInterface.OnClickListener(){
    			public void onClick(DialogInterface dialog, int which){

				// 해당 어플의 프로세스를 강제 Kill시킨다.
				android.os.Process.killProcess(android.os.Process.myPid());
 			}
    		}).setNegativeButton("아니오", new DialogInterface.OnClickListener(){
    			public void onClick(DialogInterface dialog, int which){
			}
    		}).show();
	}
   	return true;
}