[안드로이드 프로그래밍] 백키눌렀을때 종료및 캐쉬제거

밑에있는 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="exit">나갈꼬야?!</string>
<string name="yes">종료!</string>
<string name="no">시또!</string>
<string name="exit_message">쪙말로나갈꼬야?!</string>

다른액티비티도 똑같이 해줄시 종료가 됩니다.


출처:http://cafe.naver.com/orangef914k/25906


댓글을 달아 주세요