gpt4 book ai didi

java - 从线程调用 Activity

转载 作者:行者123 更新时间:2023-12-01 06:15:30 24 4
gpt4 key购买 nike

我有两个类。一个使用 Thread ,另一个使用 Activity。

public class MainActivity extends Activity
{
public void incrementCounter(int amount)
{
counter += amount;

Log.d("WHY", "why you no print");
}
}

然后在 Activity 中使用计数器来满足其需要。

实现线程的另一个类是:

public class ScoreSystem implements Runnable
{
private int count = 0;
private MainActivity reference;

public void run()
{
Looper.prepare();

while(true)
{
if(count >= 100 && reference != null)
{
//gets inside the if statement just fine
reference.incrementCounter(count);
count = 0;
}
count++;
}
}
}

问题是 reference.incrementCounter(count); 从未实际运行。 引用不为空,并且指向正确的 Activity 。我没有发布这部分代码,因为它很琐碎,不会帮助任何人,而且会浪费您的时间。

如何确保我的线程调用 Activity ?

最佳答案

您可以按照 SilentKiller 的说法将 incrementCounter() static 设为静态,并通过某些 Handler 或 UIThread 中的 runOnUIThread 调用它,因为 MainActivity 来自 UIThread,这可能会导致后台出现问题线程。

类似的东西:

 runOnUiThread(new Runnable()
{
public void run()
{
reference.incrementCounter(count);
}
}

 public static void incrementCounter(int amount) 
{
// do your code
}

并再次检查您的计数逻辑。

关于java - 从线程调用 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967744/

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