차근차근/Android 160

Handler

http://csjung.tistory.com/43 Handler란? 한 스레드는 그 내부의 연산만 가능하며 다른 스레드의 UI를 건드릴 수 없습니다. 그런데 만약 스레드들이 서로 영향을 줄 수 없다면 스레드의 존재 이유가 없을 것입니다. 이를 해결하기 위해서 서로 다른 스레드 간의 참조를 위해서 스레드 간에 통신할 수 있는 장치를 만들었는데 그것이 핸들러[Handler]입니다. 핸들러는 스레드 간에 메시지 객체나 러너블 객체를 통해 통신할 수 있는 장치이며,하나 의 핸들러는 하나의 스레드와 관련을 맺습니다. 핸들러는 자신이 생성된 스레드에 짝이 되며 다른 스레드와 통신을 수행하게 됩니다. Handler의 메시지 수령 핸들러에 메시지가 도착하게 되면 아래의 메서드가 호출됩니다. public void ha..

[Android] WebView에서 HTML5 사용을 위한 WebSettings 설정

http://www.joannesoft.com/plugin/mobile/board.php?bo_table=blog_programing&wr_id=11&page= 01 WebSettings setting = null; 02 browser = (WebView) findViewById(R.id.website); 03 setting = browser.getSettings(); 04 setting.setJavaScriptEnabled(true); //--- JavaScript 허용 05 setting.setGeolocationEnabled(true); //--- 위치 정보 사용 허용 06 setting.setJavaScriptCanOpenWindowsAutomatically(true); 07 setting.set..

shouldOverrideUrlLoading(WebView view, String url)

http://skyswim42.egloos.com/3835420 webviewClient.java 에 shouldOverrideUrlLoading 이라는 function 이 있다. 이 함수는 페이지 이동시 등등에 항상 불린다.. 좀 자세히 보자.. 1. bool WebFrame::canHandleRequest(const WebCore::ResourceRequest& request) { jboolean ret = env->CallBooleanMethod(mJavaFrame->frame(env).get(), mJavaFrame->mHandleUrl, jUrlStr); } : webkit core 에서 호출함. ==> 2. public boolean handleUrl(String url) { if (mCall..

WebChromeClient 사용하기

전용뷰어 보기 http://blog.daum.net/satomail/160 출처 : http://blog.naver.com/jolangma/150106614828 WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); // 각종 알림 및 요청을 받게되는 WebViewClient를 설정합니다. - option webView.setWebViewClient(new CustomWebViewClient()); // 크롬 핸들러 설정. 이 핸들러는 자바 스크립트 대화 상자, favicon, 제목과 진행상황 처리에 // 사용하기 위해 WebChromeClient을 구현한 것입니다. -..

안드로이드 웹뷰(webview)안에서 alert 처리

전용뷰어 보기 http://kwangoms.tistory.com/33 웹뷰안에서 alert 를 하면 서버 host url이 나타난다.. 그걸 없애주기위해선 아래처럼 따로 구현을 해줘야함. webView.setWebChromeClient(new ChromeClient() { @Override public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result){ new AlertDialog.Builder(view.getContext()) .setTitle("메세지") .setMessage(message) .setPositiveButton(android.R.string.ok, new Aler..

[Android] Activity "생명주기" 관련 테스트

http://mydevromance.tistory.com/21 아래 코드는 안드로이드 프레임워크에서 Activity의 상태에 따라 호출하는 대부분의 함수를 나열했다. 각각 로그를 찍어서 각 함수의 실행 순서를 테스트하여 정리한다. view source print? 001.public class TestAppActivity extends Activity implements OnClickListener { 002. 003.@Override 004.public void onCreate(Bundle savedInstanceState) { 005.super.onCreate(savedInstanceState); 006.Log.d("TestAppActivity", "onCreate"); 007.setContentVi..

쌓여가는 static 해제,캐쉬 데이터 삭제 방법!

전용뷰어 보기 http://kangshef.egloos.com/5402177 안녕하세요 쉪쉪 강쉪입니다. 오늘은 쌓여가는 static 변수의 해제 방법에 대해 알아보려 합니다. 일반적으로 static 변수를 사용하는 이유를 말씀 드리면 어떤 클래스에서도 상관없이 어떤 패키지에서도 상관없이 아니 어디에서도 상관없이 Dalvik이 상주해 있다면 종료되기 전까지는 계속해서 상위에 머무르게 되는 데이터입니다. 다시 말하자면? 단말기를 종료하기 전까지는 없어지지 않는다는 뜻도 되겠습니다. 그러면 그게 잘 만든 App냐? 절대 아니죠 이 어플만 사용하면 느려진다? 절대 그럴 순 없습니다. 그래서 알려드립니다. 깨끗하게 해제하는 방법! 일단 static 변수의 해제부터 보겠습니다. onDestroy()메소드를 삽입 ..

[Android] Exif 해더 수정.

http://blog.naver.com/PostView.nhn?blogId=anywars&logNo=140132767414 안드로이드는 다행스럽게도 이미지 해더를 수정할수 있는 클레스를 제공해준다. 문론 아이폰도 동일하다. ExifInterface 란 이름이고 사용법은 매우 간단하다. ExifInterface exif = new ExifInterface(filePath); exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, latitude); exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, longitude); exif.setAttribute(ExifInterface.TAG_ORIENTATION, orientation); e..

반응형