-
[11] HandlerDevelpment/Android Using Sample 2020. 9. 13. 21:36
1. Handler
Layout
1234567891011121314151617181920212223242526272829<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.sin.sample_2.MainActivity"android:orientation="vertical"><TextViewandroid:id="@+id/text_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="Handler Test"android:textSize="20dp"/><Buttonandroid:id="@+id/startHandler_btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Start Handler"/></LinearLayout>cs * Handler 테스트를 위한 Button과 TextView를 준비.
Activity
12345678910111213141516171819202122232425262728293031323334353637383940public class MainActivity extends AppCompatActivity {Button startHandler_btn;TextView text_view;int count = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);text_view = (TextView)findViewById(R.id.text_view);startHandler_btn = (Button)findViewById(R.id.startHandler_btn);startHandler_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {handler.sendEmptyMessage(0);}});}// onCreate()Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {handler.sendEmptyMessageDelayed(0, 1 * 1000);text_view.setText( String.format("Count : %d", ++count) );if(count > 10){handler.removeMessages(0);count = 0;text_view.setText( String.format("Count : %d", count) );}}};}cs * startHandler_btn를 누를 경우 Handler.sendEmptyMessage()를 호출 하여 핸들러 시작.
* Handler 객체를 만들고, handleMessage()를 Override 해준다.
* sendEmptyMessageDelayed()를 호출하여 특정 시간 간격으로 다시 호출 하도록 세팅.
* sendEmptyMessageDelayed()의 2번째 인자값이 지연시간. (1000 = 1초)
* handler의 반복을 멈추기 위해서는 removeMessages()를 호출하면 핸들러가 정지한다.
2. 결과화면
'Develpment > Android Using Sample' 카테고리의 다른 글
[13] SharedPreferences (0) 2020.09.13 [12] 앱종료 확인 (Handler 응용) (0) 2020.09.13 [10] Intent (0) 2020.09.13 [9] Rating Bar (0) 2020.09.13 [8] Dialog (0) 2020.09.13