我有3個按鈕和3個textview.When我按第一個按鈕我想看到10秒後寫在第一個textview.i按第二個按鈕我想看到有些5秒後,這是寫在第二個textview。我按第三個按鈕,我想看看立即寫入的textview。查看多線程管理?
我的問題如何在視圖中工作所有多線程而不鎖定其他視圖?我嘗試了ASCYNTask,但它沒有工作。
有人可以給我任何建議嗎?
我的活動:
package com.example;
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MyActivity extends Activity
{
Button a,b,c;
TextView ta,tb,tc;
Ascyn ascyn,ascyn2,ascyn3;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
a=(Button)findViewById(R.id.ba);
b=(Button)findViewById(R.id.bb);
c=(Button)findViewById(R.id.bc);
ta=(TextView)findViewById(R.id.ta);
tb=(TextView)findViewById(R.id.tb);
tc=(TextView)findViewById(R.id.tc);
ascyn=new Ascyn(this);
ascyn2=new Ascyn(this);
ascyn3=new Ascyn(this);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ascyn.execute();
SystemClock.sleep(5000);
ta.setText("ok");
}
});
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ascyn2.execute();
SystemClock.sleep(1000);
tb.setText("ozaman");
}
});
c.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ascyn3.execute();
tc.setText("byby");}
});
}
}
Ascyn:
package com.example;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
/**
* Created by IntelliJ IDEA.
* User: duygukahraman
* Date: 20.02.2012
* Time: 15:44
* To change this template use File | Settings | File Templates.
*/
public class Ascyn extends AsyncTask<Void,String,Void> {
private Context ctx;
ProgressDialog dialog;
public Ascyn(Context context){
ctx=context;
dialog=new ProgressDialog(ctx);
}
@Override
protected void onPreExecute() {
// dialog.setTitle("Please wait");
// dialog.show();
}
@Override
protected Void doInBackground(Void... unused) {
// SystemClock.sleep(20000);
return (null);
}
@Override
protected void onPostExecute(Void unused) {
dialog.dismiss();
}
}
處理程序。下一個建議:向我們展示您如何使用AsyncTask進行嘗試。 – WarrenFaith 2012-02-21 13:24:39
@ WarrenFaith.I添加了我的代碼。 – DuyguK 2012-02-21 13:30:20