【发布时间】:2016-10-05 02:40:11
【问题描述】:
上下文:
Activity A 有一个线程作为字段。
A 初始化线程但不启动它。
- A 启动 Activity B。
- 我希望 B 能够访问由 A 初始化的线程来进行一些计算。
- 我坚持在不使用AsynchTask的情况下实现这一点。只有 Thread 和 Handler。
问题:
如果在 A 中初始化的线程是一个静态字段,我应该能够从 B 访问它吗?
如果是这样,如果我在 B 开头的意图中传递 A 的上下文会怎样?
例如:
class B extends Activity{
@Override
void onCreate(Bundle bundle){
super.onCreate(bundle);
// Retrieve A's context and access it's static field
getAContexte().myThread.run();
}
}
【问题讨论】:
-
在 A 中创建线程并由 B 执行它听起来不是一个好方法。也许最好有一个服务并在其中创建一个新线程。
-
在第二个活动中创建线程。然后将结果传递回第一个活动。使用在主 UI 线程上创建的处理程序将数据添加到视图。试图传递一个线程根本没有意义。
-
你说没有意义?处理跨应用程序共享的通信套接字的 I/O 的线程怎么样。我在下面发布了对我有用的解决方案
标签: java android multithreading android-activity