android - 查看多线程管理?

原文 标签 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 - 查看多线程管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9378282/

相关文章:

multithreading - 在 Scala Actor 中集成自主和 react 行为的最佳方式?

c# - Silverlight ReaderWriterLock 实现好/坏?

c# - 在WCF中使用任务构建异步操作协定的正确方法

android - java.lang.RuntimeException : Cannot initialize Visualizer engine, 错误:-4

android - 对话框内存泄漏还是顽固的GC?

android - 使用 Mifare DESFire 对 Android 应用和锁系统进行身份验证

multithreading - Java线程转储: `WAITING (on object monitor)` line not followed by `waiting on <0x1234>` line

java - Android:animateLayoutChanges(false) 以编程方式给出 NullPointerException

java - OnClickListener 适用于 ArrayList 中的最后一个元素

java - 使用AsynchronousSocketChannel时出现ReadPendingException