1. 程式人生 > >android中用AsyncTask解決UI執行緒阻塞

android中用AsyncTask解決UI執行緒阻塞

package com.example.mm.helloworld;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.TranslateAnimation;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
private Button button_up = null; private int jj=30; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TranslateAnimation animation=new TranslateAnimation(-100,100,0,0); animation.setDuration(2000
); animation.setRepeatCount(1000); Button button_down = (Button) findViewById(R.id.button_down); button_down.setAnimation(animation); button_up=(Button) findViewById(R.id.button_up); button_up.setOnClickListener(new View.OnClickListener() { @Override public
void onClick(final View v) { new DownloadImageTask().execute(); } }); } private class DownloadImageTask extends AsyncTask<String,Void,Integer> //AsyncTask { protected Integer doInBackground(String... urls) //跟UI無關的耗時操作,寫線上程裡面 { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } int sum=10; return sum; } protected void onPostExecute(Integer sum)//跟UI元件相關的操作寫在post裡面 { button_up.setText(""+sum); } }