gpt4 book ai didi

android - 将值从线程传递到主 Activity

转载 作者:太空狗 更新时间:2023-10-29 16:37:56 25 4
gpt4 key购买 nike

我已经在网上搜索了很长时间了。也许我在这里做的是错误的。

我在与 MainActivity.java 不同的文件中编写了一个线程类。因为线程和主 Activity 都比较长,所以我决定把它们分开放在不同的文件中。

我想将从线程类生成的一些值传递给主 Activity 。最初我想使用处理程序。但是因为线程与主要 Activity 在不同的类中。它不知道我在主要 Activity 中定义的处理程序。

public class mythread implements Runnable{
@Override
public void run(){
result = result_from_some_task();
}
}

这是我的线程类的基本结构,我想将结果传回主 Activity 。我看过很多示例,其中大多数线程都在主 Activity 类中,并且可以轻松引用定义的处理程序。

Intent 似乎不适用。有没有人知道如何进行此类操作?

提前致谢。

最佳答案

创建 AnotherClass 的参数化构造函数,当您创建 AnotherClass 的对象时,只需将 MainActivity 的对象传递到该构造函数,并在您想要调用 MainActivity 的方法的 AnotherClass 类中,然后只需从该对象调用该方法即可。

检查以下代码:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AnotherClass object= new AnotherClass (this);
object.start();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

public void makeSomeCalculation() {
//logic to change some UI
}
}

并检查另一个类:

public class AnotherClass extends Thread {

MainActivity mainActivity;

public AnotherClass (MainActivity mainActivity) {
// TODO Auto-generated constructor stub

this.mainActivity = mainActivity;
}

public void run() {
//write other logic
mainActivity.makeSomeCalculation();
//write other logic
}
}

关于android - 将值从线程传递到主 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23692856/

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