ProcessKill使用時:endSession連携ガイド
Androidアプリの終了処理の際、ProcessKillなどの強制終了させる方法を利用している場合、Adbrixのトラッキングデータが流失する場合がございます。
Adbrixのトラッキングデータは、IgawCommon.endSession() APIを呼び出す際、サーバーに送信を実行しますが、ガイドではonPause()でAPIを呼び出すようにご案内しております。
Androidの「戻る」ボタンをタップしたとき、終了ポップアップを表示して終了を選択した時に、ProcessKillなどを利用する強制終了方式ではendSession APIが正常に呼び出せないケースが多く発生しております。
Androidの「戻る」ボタンのイベントアクションで、以下のように処理をして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;
}
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;
}