ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [11] Handler
    Develpment/Android Using Sample 2020. 9. 13. 21:36

    1. Handler


     Layout

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?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">
     
        <TextView
            android:id="@+id/text_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Handler Test"
            android:textSize="20dp"/>
     
        <Button
            android:id="@+id/startHandler_btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Start Handler"/>
     
    </LinearLayout>
     
    cs

    * Handler 테스트를 위한 Button과 TextView를 준비.


    Activity 

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public class MainActivity extends AppCompatActivity {
     
        Button startHandler_btn;
        TextView text_view;
        int count = 0;
     
        @Override
        protected 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() {
                @Override
                public void onClick(View view) {
                    handler.sendEmptyMessage(0);
                }
            });
        }// onCreate()
     
        Handler handler = new Handler(){
     
            @Override
            public void handleMessage(Message msg) {
     
                handler.sendEmptyMessageDelayed(01 * 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

    댓글

Designed by Tistory.