'Mobile/Android Programming'에 해당되는 글 10건

Flag_Activity

Mobile/Android Programming

안드로이드의 구성요소

Mobile/Android Programming
1. 액티비티
2. 브로드캐스트 리시버
3. 서비스
4. 컨텐츠 프로바이더 

액티비티의 라이프 사이클에서 각 메소드의 기능

Mobile/Android Programming

onCreate() : 액티비티 생성 시 불린다.
onStart() : 액티비티의 표시가 개시되었을 때 불린다.
onRestart() : 정지 상태로부터 표시 재개로 상태 천이를 할 때 불린다.
onResume() : 사용자가 조작을 할 때 불린다.
onPause() : 사용자가 조작중일 때 불린다.
onStop() : 액티비티의 표시를 중단했을 때 불린다.
onDestroy() : 액티비티가 파괴되었을 때 불린다.

'Mobile > Android Programming' 카테고리의 다른 글

Flag_Activity  (0) 2011.11.14
안드로이드의 구성요소  (0) 2011.03.02
xmlparser와 카울리(Cauly)사이의 문제  (0) 2011.03.02
컴파일에러  (0) 2011.02.24
WebView에서 뒤로가기 키 (BackKey) 처리  (4) 2011.02.22

xmlparser와 카울리(Cauly)사이의 문제

Mobile/Android Programming

XMLPULLPARSER를 통해 네이버 OPEN API에서 불러오는 과정과 카울리(CAULY)사이에 문제가 있다.
XMLPULLPARSER를 쓰레드를 통해서 불러들이도록하면 될수도 있을거같다?

컴파일에러

Mobile/Android Programming


OnClickListener mClickListener = new OnClickListener() {
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.searchButton:
			Toast.makeText(this, "make Toast!!", Toast.LENGTH_SHORT).show();
			break;
		}
	}
}
위 코드를 컴파일 하려고 하니 계속 에러가 났다. 
에러는 아래와 같다.
The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new View.OnClickListener(){}, String, int)

여기서 컴파일이 되지 않았던 이유는 this 라는 것 때문이다.
검색을 해보니 아래와 같이 해결을 하라고 되어있다. "this" is refering to the View.OnClickListener instead of your Activity.
this가 엑티비티를 가라키는 것이 아니라 View.OnClickListener를 가리키고 있어서 그렇다.
그래서 위 코드를 아래와 같이 바꾸니까 해결되었다.



OnClickListener mClickListener = new OnClickListener() {
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.searchButton:
			Toast.makeText(Main.this, "make Toast!!", Toast.LENGTH_SHORT).show();
			break;
		}
	}
}

WebView에서 뒤로가기 키 (BackKey) 처리

Mobile/Android Programming

WebView를 이용해서 웹페이지를 열었을 때 뒤로가기키를 누르면 WebView가 바로 종료되고 이전 Activity가 열리거나 프로그램이 종료된다. 
이것을 막기위해서 이전 웹페이지가 존재할 경우 그 페이지로 돌아가고, 페이지가 존재하지 않을 경우 WebView를 종료하도록 하는 처리를 해주는 아래 함수를 추가하면 된다.
 
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
			web.goBack();
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}

requestWindowFeature 에러나는 이유

Mobile/Android Programming
requestWindowFeature(Window.FEATURE_NO_TITLE);
위 함수를 적용하기 위해서 계속 컴파일하고 실행했는데도 런타임 에러가 났다.

이유는 간단한다.

setContentView 가 불려지기 전에 requestWindowFeature가 불려져야 한다.

이클립스 안드로이드 외부 라이브러리 추가

Mobile/Android Programming

프로젝트에 마우스 오른쪽 클릭 - import -[General - File System] - 추가할 라이브러리 추가 - Finish
- 프로젝트에 마우스 오른쪽 클릭 - 속성 - Java Build Path - Add JARs - 라이브러리 선택 - OK - Finish

'Mobile > Android Programming' 카테고리의 다른 글

컴파일에러  (0) 2011.02.24
WebView에서 뒤로가기 키 (BackKey) 처리  (4) 2011.02.22
requestWindowFeature 에러나는 이유  (0) 2011.02.22
Android WifiLock 기능 사용하기  (0) 2011.02.07
Android WakeLock 기능  (0) 2011.02.07

Android WifiLock 기능 사용하기

Mobile/Android Programming

일반적인 경우 화면이 꺼진 후에 WIfi는 일정 시간이 지난후에 자동으로 꺼진다.
개발자가 원하는 특수한 경우 화면이 꺼진 상태에서도 Wifi를 계속해서 켜놓을 수 있다.

WifiManager.WifiLock wifiLock = null;

//실행
if (wifiLock == null) {
	WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
	wifiLock = wifiManager.createWifiLock("wifilock");
	wifiLock.setReferenceCounted(true);
	wifiLock.acquire();
}

//해제
if (wifiLock != null) {
	wifiLock.release();
	wifiLock = null;
}

Android WakeLock 기능

Mobile/Android Programming
출처 : Android Developer


화면이 꺼져있을 때 스레드가 계속 실행되게 하거나, 프로그램이 실행되는 동안 화면을 계속 켜놓거나, 프로그램이 실행되는 동안 키보드 back light를 켜놓기 위해서 WakeLock을 이용한다.

	
	public void wakeLock(boolean flag) {
		if(flag == ON) {
			if (wl == null) { // CPU on (Power Manager)
				pm = (PowerManager) context
						.getSystemService(Context.POWER_SERVICE);
				wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
						"wakelock");
				wl.acquire();
			}
		} else {
			if (wl != null) { // PowerManager Release
				wl.release();
				wl = null;
			}
		}
	}
WakeLock기능을 사용하는 것은 좋지만 반드시 모든 가능한 경우를 따져서 release 해줘야 한다.