android - View 中的多线程管理?

标签 android multithreading

我有 3 个按钮和 3 个 TextView 。当我按下第一个按钮时,我想在 10 秒后看到它正在写入第一个 TextView 。我按下第二个按钮,我想在 5 秒后看到它正在写入第二个 TextView .我按下第三个按钮,我想立即看到正在写入的textview。

我的问题是如何在不锁定其他 View 的情况下处理 View 中的所有多线程?我尝试了 ASCYNTask,但它不起作用。

有人可以给我任何建议吗?

我的 Activity :

 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();
            }
        }

最佳答案

You have to create separate Async class for each thread like.

 public class AscynThread1 extends AsyncTask<Void,String,Void> { // }

 public class AscynThread2 extends AsyncTask<Void,String,Void> { // }

 public class AscynThread3 extends AsyncTask<Void,String,Void> { // }

关于android - View 中的多线程管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9378282/

相关文章:

multithreading - 在后台线程上实例化 UI 对象是否安全?

android - 从代理网络访问 XML 服务

android - 仅构建默认值(无口味/变体)

android - 两个并排的 LinearLayouts,一个具有最小宽度

java - 条件等待线程消耗太多CPU周期

c# - 线程在 IIS 上托管的 WCF 应用程序内随机停止

c++ - Boost::thread::interrupt() 对于不同的中断点表现不同。为什么?

Android 从 URL 下载图像并在 Imageview 中显示

java - 套接字编程 : Delay

.net - 在 VB.NET 4 下创建系统服务时出现线程/定时器问题