[안드로이드 프로그래밍] 백키눌렀을때 종료및 캐쉬제거
밑에있는 apk파일은 예제파일입니다.
JAVA
package com.mycompany.myapp;
//수정해야함
import android.app.*;
import android.content.*;
import android.os.*;
import android.view.*;
import android.webkit.*;
public class MainActivity extends Activity
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//R.layout.main 부분 수정해야함
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { //키이벤트
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //백키눌럿을때 이벤트 리픽?팩? 카운트0
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert) //아이콘
.setTitle(this.getString(R.string.exit)) //string에 잇는 exit를 불러온다
.setMessage(this.getString(R.string.exit_message)) //string에 잇는 exis_message 를 불러온다
.setPositiveButton(this.getString(R.string.yes), //string에 잇는 yes를 불러온다
new DialogInterface.OnClickListener()
{
@Override
public void onClick( DialogInterface dialog, int which )
{
moveTaskToBack(true);
finish();//끝내기
}
}
).setNegativeButton(this.getString(R.string.no), null ).show(); //string에 잇는 no를 불러온다
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onDestroy() {
super.onDestroy();
clearApplicationCache(null);
android.os.Process.killProcess(android.os.Process.myPid() );
}
public void clearApplicationCache(java.io.File dir){ //종료시 모든 캐쉬 삭제
if(dir==null) dir = getCacheDir();
if(dir==null) return;
java.io.File[] children = dir.listFiles();
try{
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
for(int i=0;i<children.length;i++)
if(children[i].isDirectory())
clearApplicationCache(children[i]);
else children[i].delete();
}
catch(Exception e){}
}
}
string.xml
<string name="yes">종료!</string>
<string name="no">시또!</string>
<string name="exit_message">쪙말로나갈꼬야?!</string>
다른액티비티도 똑같이 해줄시 종료가 됩니다.
출처:http://cafe.naver.com/orangef914k/25906
댓글