在新创建的活动中保持对线程的引用

时间:2016-06-05 11:28:13

标签: java android multithreading android-activity

背景:

  • 活动 A 将一个主题作为字段。

  • A 初始化主题,但不启动它。

  • A 启动活动 B
  • 我希望 B 能够访问由 A 初始化的线程来进行一些计算。
  • 坚持在不使用 AsynchTask 的情况下实现这一点。只有线程处理程序

问题:

如果在 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();     
    }
}  

2 个答案:

答案 0 :(得分:0)

线程在运行之前只是一个普通对象。只需确保采用标准方法来同步A和B之间的访问。例如,访问A的上下文和保存B中线程引用的字段必须正确同步。

答案 1 :(得分:0)

我最终使用了Singleton模式在我的应用程序的活动之间传递了我的主题:

我创建了一个包含我的线程的类。它有一个私有构造函数和一个静态getInstance()方法来返回包含我的线程的对象。每次使用它都会返回相同的实例。