Android 59

안드로이드 작업스케쥴링 sendMessageDelayed를 언제 쓰지

boolean sendMessageAtTime(Message msg, long uptimeMillis) // 이 메소드는 부팅후 경과시간을 사용하여 지정할 수 있습니다 boolean sendMessageDelayed(Message msg, long delayMillis) //지금 시간으로 경과한 시간으로 지정한다 단위는 둘다 밀리초 러너블도 다음메소드를 이용해서 지연시간을 둘 수 있습니다 boolean postAtTime(Runnable r, long uptimeMillis) boolean postDelayed(Runnable r, long delayMillis) 일단 이런것을 왜 쓰는 건지 이해하기위해서 다음 예제를 실행해봅시다. 일단은 delayed메시지를 안썼을때입니다. main.xml

안드로이드 루퍼(looper)!? 쓰레드와 관포지교 관계

루퍼(looper) 지금까지 쓰레드끼리 Message객체를 만들어서 정보를 주고 받는다고 생각하면 잘못된 것입니다. 예제들을 보면 메인쓰레드만 Message객체를 받고 있음을 알 수 있습니다. 즉 메인쓰레드는 루퍼란 것을 가지고 있기때문에 메시지를 받을 수 있었습니다. 루퍼란놈은 메시지큐에서 메시지를 꺼내서 핸들러에 보내는 역할을 합니다(이전 소스보면 메인쓰레드 안에 Handler mHanler = new Handler()를 했음을 알 수 있습니다. 그렇다면 서브쓰레드에도 메시지를 받을 수 있게 할려면? 서브쓰레드에도 루퍼를 만들어주면 됩니다. static void prepare() : 현재 쓰레드를 위한 루퍼를 준비합니다 static void loop() 큐에서 메시지를 꺼내 핸들러로 전달하는 루프를 ..

안드로이드 Context Menu를 만들어보자.

컨텍스트 메뉴 컨텍스트 메뉴란 뷰를 롱클릭했을때 나타나는 메뉴입니다. 이번에는 아이유 사진을 등록하고 아이유 사진을 누르면 메뉴가 뜨게 해보겠습니다. 기본적으로 컨텍스트 메뉴를 달고 싶으면 void Acitivity.registerForContextMenu(View view) 메소드를 사용해야되고 기본적인 메뉴 생성은 void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) 에서 처리를 합니다. 그리고 컨텍스트 메뉴 아이템이 선택됬을 때는 boolean onContextItemSelected(MenuItem item) 에서 처리하면됩니다. 이때 오버라이딩 방법은 소스에서 오른쪽 클릭을 누르면 다음과 같이..

안드로이드 Listener의 이해, 버튼을 누르면 Text가 바뀐다

이번에는 버튼이 눌리면 글자가 바뀌는 간단한 어플을 만들어봅시다. 이때 필요한 것은 리스너라는 것인데 리스너는 귀를 귀울이다라는 뜻으로 생각하면 됩니다. 자세한 건 소스에 있습니다. activity_main.xml MainActivity.java package com.example.fruit; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { @Ov..

안드로이드 Toast 메시지에 내가 원하는 그림을 넣어보자

위는 file explore입니다. mina.jpg는 그림파일인데 안드로이드에서는 png나 jpg를 쓰는 것을 추천합니다. 저는 아래 사진을 썼습니다. 토스트메시지는 화면에 잠시 나타나는 메시지인데 디버깅할 때나 잠시 사용자에게 메시지를 보여줄 때 유용합니다. static Toast makeText(Context context, int resId, int duration) static Toast makeText)Context context, CharSequence text, int duration) 첫번째인자는 액티비티를 전달하므로 액티비티.this로 넘겨주면 되고 두번째인자는 메시지인데 String타입도 가능합니다. 세번째인자는 메시지의 지속시간인데 LENGTH_SHORT나 LENGTH_LONG 값중 ..

반응형