アンドロイドタイマーを達成

新しいレイアウトファイルactivity_main.xml

<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
< のLinearLayout のxmlns:アンドロイド= "http://schemas.android.com/apk/res/android" 
    のxmlns:アプリ= "http://schemas.android .COM / APK / RES-オート" 
    のxmlns:ツール= "http://schemas.android.com/tools" 
    のandroid:layout_width = "match_parent" 
    のandroid:layout_height = "match_parent" 
    ツール:コンテキスト="。MainActivity」> 

    < ボタンは
         アンドロイド:ID = "@ + ID / btnOk" 
        アンドロイド:layout_width = "wrap_content" 
        アンドロイドを:
        アンドロイド:TEXTSIZE = "15dp"  /> 

    < TextViewの
         アンドロイド:ID = "@ + ID / tvtimeを" 
        アンドロイド:layout_width = "wrap_content" 
        のandroid:layout_height = "wrap_content" 
        アンドロイド:TEXTSIZE = "15dp"  /> 


</ のLinearLayout >

新MainActivity.java

パッケージcom.example.administrator.timer。

輸入android.os.Bundle;
輸入android.os.Handler;
輸入android.support.v7.app.AppCompatActivity;
輸入android.view.View;
輸入android.widget.Button;
輸入android.widget.TextView; 

パブリック クラス MainActivityは拡張 AppCompatActivity 実装View.OnClickListener { 

    プライベートボタンbtnOkを。
    民間のTextView tvtimeを。

    プライベート ブール BSTART = ;
    プライベートハンドラmHander = 新しいですハンドラ();
    プライベート int型 MCOUNT = 0 ; 

    プライベート RunnableをmCounter = 新しいRunnableを(){ 
        @Override 
        公共 のボイドの実行(){ 
            MCOUNT ++ ; 
            tvTime.setText( "当前计数值:" + MCOUNT)。
            mHander.postDelayed(これ、1000年); 
        } 
    }。

    @Override 
    保護された ボイドのonCreate(バンドルsavedInstanceState){
         スーパー.onCreate(savedInstanceState)。
        setContentView(R.layout.activity_main)。
        initView();
    } 

    プライベート ボイドinitView(){ 
        btnOk = (ボタン)findViewById(R.id.btnOk)。
        tvtimeを = (のTextView)findViewById(R.id.tvTime)。

        btnOk.setOnClickListener(この); 
    } 

    @Override 
    公共 ボイドのonClick(ビューV){
         スイッチ(v.getId()){
             ケースR.id.btnOk:
                 もし(BSTART == ){ 
                    btnOk.setText( "停止计时" )。
                    mHander.post(mCounter)。
                } { 
                    btnOk.setText("開始時刻" ); 
                    mHander.removeCallbacks(mCounter); 
                } 
                BSTART!= BSTART;
                 BREAK ; 
        } 
    } 
}

髪は、多くの場合、ハンドラを使用してタスクを開始します。以下は、ハンドラのRunnableタスクの説明を治療する一般的な方法です。

●ポスト:スタートのRunnableタスクすぐ。

●postDelayed:いくつかのRunnableタスクの遅延の後に開始する時間。

●postAtTime:指定した時刻に開始するためのRunnableタスク。

●removeCallbacks:指定されたRunnableタスクを削除します。

 

おすすめ

転載: www.cnblogs.com/ldy731729142/p/12608820.html