当前位置: 代码迷 >> Android >> 一个Activity实时向另一个Activity发送消息解决思路
  详细解决方案

一个Activity实时向另一个Activity发送消息解决思路

热度:42   发布时间:2016-04-28 05:48:40.0
一个Activity实时向另一个Activity发送消息
在Android开发过程中,从一个Activity类中(A)实时的向另一个Activity类中(B)发送消息,在B中实时显示A发过来的消息,在网上查了一些,有说用handler操作的,本人初学Android不久,不是很清楚,还请高手们详细指教,不胜感激!
------解决方案--------------------
Intent intent1 = new Intent();
intent1.putExtra("key","value"); // 这里用来传值
intent1.setClass(this, Next.class);


String value = getIntent().getStringExtra("key"); // 在Next类里,通过这样来取值
------解决方案--------------------
楼主的提问好像有些问题,A向B传递数据应该没得实时吧,毕竟B打开的时候,A是暂停或销毁的。同楼上这个方法可以传递数据。
------解决方案--------------------
从网上找到一个类似的方法,供你参考一下

原理:假设有两个Activity:ActivityMain 和 ActivityNew,在 ActivityMain 中启动 ActivityNew,而在 ActivityNew 可以访问 ActivityMain 中的成员对象,调用其公开的方法。那么先在 ActivityMain 中定义一个静态的成员变量,类型为 ActivityMain ,然后在 OnCreate过程中,将ActivityMain 的实例this赋值给该成员:

public class ActivityMain extends Activity {

        public static ActivityMain MainAct; //定义一个本类型的成员变量
        
        
        String GetStr(){
                return "shao jian";
        }
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main); 

                MainAct = this; //在这里将本实例赋值给静态成员变量
        }
...
}


在ActivityNew中访问ActivityMain中的成员变量和方法:

public class ActivityNew extends Activity {
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                
                String title = bundle.getString("Title");

                title = MainActicivity.MainAct.GetStr(); //调用成员方法
                t.setText(title.trim());

                super.onCreate(savedInstanceState);
        }
}
------解决方案--------------------
我感觉吧,应该是先设计一个Service,由Service来读取串口数据(并保存?)。
两个Activity都bind这个Service(onResume的bind,onPause的unbind),然后通过Service的Interface读取该Service收到的串口数据
  相关解决方案