码迷,mamicode.com
首页 > 编程语言 > 详细

不同Activity之间传递线程

时间:2016-06-05 15:15:38      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

  场景:Android由Activiy A创建Activiy B时 ,A创建的线程B中依然需要调用,这时候需要在两个activity之间传递线程的信息。

  解决:

    方式一:线程自己维护自己的静态句柄(比较好,降低耦合)。

    方式二:A将线程信息传给B,因为Activity.startActivity方法只能传递Intent对象,函数原型:

    @Override
    public void startActivity(Intent intent) {
        this.startActivity(intent, null);
    }

    Intent只支持Key-Value类似的数据传递,这里的思路是传递线程id,然后在B 中遍历线程栈,找到该id对应的线程实例。

    A中代码:

    Intent intent=new Intent();
    intent.setClass(A.this, B.class);  //设置intent
    intent.putExtra("tid", myThread.getId());
    this.startActivity(intent);

    B中代码:

    //取得线程实例
    Long tid= getIntent().getLongExtra("tid", 0);
    for (Thread t : Thread.getAllStackTraces().keySet())
        if (t.getId()==tid)  myThread=(MyThread)t;

 

不同Activity之间传递线程

标签:

原文地址:http://www.cnblogs.com/the-owl/p/5560750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!