gpt4 book ai didi

java - Function 和 Runnable 同时工作(如何?)(Android、Java)

转载 作者:行者123 更新时间:2023-11-30 09:20:16 26 4
gpt4 key购买 nike

我有一个 Android 应用程序,在按下 按钮 后启动一个函数(在 onCreate() 之外)。此函数使用 for 循环更改 global String variable 5 次。我想查看屏幕上显示的每个变量(即在 TextView 中)。我知道我必须使用 RunnableHandler,但是..

MainActivity(扩展Activity)/onCreate()中:

button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
handler.post(timedTask);
Start();
}
});

Start() 运行,但在完成之前屏幕上没有任何内容。

MainActivity(扩展 Activity)中:

private Runnable timedTask = new Runnable()
{
@Override
public void run()
{
textView1 = (TextView) findViewById(R.id.textView1);
textView1.append(globalMessage);
handler.postDelayed(this, 100);
}};

MainActivity(扩展 Activity)/Start() 中:

for(int j = 0; j < 5; j++)
{
...
globalMessage = message[j];
...
}

最佳答案

首先,您正在从不同的线程访问变量。您应该将其声明为 volatile

所以您希望您的 timedTask 显示 globalMessage 的 5 个值?

确保将 timedTask 与循环同步,以便在每次修改后执行 timedTask。

for(int j = 0; j < 5; j++)
{
...
globalMessage = message[j];
...// wait sometime here or make sure it is a long operation that is enough for synchronization
}

编辑

您的 handler.post 可能不会立即开始运行。你可以自己启动你的runnable:

(new Thread(timedTask)).start(); // instead of handler.post

或者以最简单的方式进行:只需在同一个线程中更新 for 循环中的文本。

关于java - Function 和 Runnable 同时工作(如何?)(Android、Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17502106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com