java - 当背后的代码存在时,简单的异步任务按钮不输出 boolean 值

标签 java android android-asynctask boolean

我试图最终将 readMessage 字符串处理成二维数组。我确实意识到“a”现在没有增加。无论如何,当我按下按钮时 bool 不会被输出为 true。 toast 还是说假的。

更新: 当前面的其他代码不存在时,我的 toast 会输出正确的 bool 值,我正在谈论二维数组的填充。当它存在时,什么也不会发生。一分钟过去了,我还没看到 toast 。这也只有一个值!

public Button seizureResult;
public double [][]stored = new double[8000][1];
public static HjorthClass finalValue;
public int a=0;
public String transfer;
public boolean bool;


    seizureResult.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v){
            Complete();
            Toast.makeText(getApplicationContext(), "Value =="+bool, Toast.LENGTH_LONG).show();
    }
    });

private class ProcessData extends AsyncTask<String, Void, Boolean>
{

    @Override
    protected Boolean doInBackground(String... params) 
    {
        if(transfer == null)
        {
            transfer = "0";
        }
        double[] convert = new double[1];
        for(int z=0; z <1;z++)
            {
        convert[z]= Double.parseDouble(transfer);
        }
        for(int j=0; j<1;j++)
        {
        stored[a][j]= convert[j];
        }
        bool = true;
        return bool;
    }
    @Override
    protected void onPostExecute(Boolean result)
    {
        Toast.makeText(getApplicationContext(), "Value =="+bool, Toast.LENGTH_LONG).show();
    }   

}


public void Complete()
{
    ProcessData task = new ProcessData();
    task.execute(transfer);
}


private final Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case MESSAGE_READ:
            byte[] readBuf = (byte[]) msg.obj;
            String readMessage = new String(readBuf,0,msg.arg1);
            transfer = readMessage;
            mConversationArrayAdapter.add("Voltage: "+ transfer);
            break;

最佳答案

AsyncTask 类允许执行后台操作并在 UI 线程上发布结果,而无需操作线程和/或处理程序。

请阅读此THISTHIS了解“AsyncTask 的工作原理”

试试这个代码

private class ProcessData extends AsyncTask<String, Void, Boolean> {

 @Override
protected Boolean doInBackground(String... params) 
{
    //your code here
    boolean bool = true;
return bool;
}

@Override
 protected void onPostExecute(Boolean result) {
     Toast.makeText(getApplicationContext(), "Value =="+result, Toast.LENGTH_LONG).show();
 }
}

关于java - 当背后的代码存在时,简单的异步任务按钮不输出 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22954620/

相关文章:

java - Android - 按钮 View 从未在功能中使用过

android - 在 Android 的 doinbackground() 中执行 UI 任务

java - 将 unicode 字符从 native 字符转换为 Java 字符时出现问题

java - 可能的正则表达式问题

java - 如何在Java中使用循环创建多个列表?

java - 对象数组到文本区域

安卓应用风格

android - 线程中的蓝牙通信或 Android 中的服务?

java - 实现 JSch 在 Android 应用程序中运行 ssh 命令

android - 滚动顶部时的 Recycler View 应该加载数据