广播 应用在activity中相互传值
来源:互联网 发布:传世挂机飞升数据 编辑:程序博客网 时间:2024/06/09 23:05
这算是如何在两个activity之间传递handler的解决方案二了,解决方案一见http://blog.csdn.net/jason0539/article/details/18055259
再重复一遍我遇到的问题,就是在MainActivity里面打开AnotherActivity去执行一些操作,相应的改变MainActivity里的一些布局或者执行一些动作,最开始想到的就是把MainActivity的Handler直接传给AnotherActivity,好像不可行,就有了这篇和上一篇文章。
上一篇方案一是通过重写application来在两个activity之间共享Handler的,今天这个方案是通过广播机制解决本来想要通过传递handler来实现的功能,算是Activity之间传递Handler问题的变通方案,
其实很简单,就是Broadcast的应用,替换了原来想要通过共享handler解决的思路。
代码如下:
MainActivity:
- package jason.broadcastinsteadofhanlderdemo;
- import android.app.Activity;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- public class MainActivity extends Activity {
- TextView textView;
- Button sButton;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- textView = (TextView) findViewById(R.id.show);
- sButton = (Button) findViewById(R.id.startAnother);
- sButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- startActivity(new Intent(MainActivity.this,AnotherActivity.class));
- }
- });
- IntentFilter filter = new IntentFilter(AnotherActivity.action);
- registerReceiver(broadcastReceiver, filter);
- }
- BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- textView.setText(intent.getExtras().getString("data"));
- }
- };
- protected void onDestroy() {
- unregisterReceiver(broadcastReceiver);
- };
- }
- package jason.broadcastinsteadofhanlderdemo;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class AnotherActivity extends Activity {
- public static final String action = "jason.broadcast.action";
- Button update;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.another);
- update = (Button) findViewById(R.id.updateMain);
- update.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent = new Intent(action);
- intent.putExtra("data", "yes i am data");
- sendBroadcast(intent);
- finish();
- }
- });
- }
- }
代码地址:http://download.csdn.net/detail/jason0539/6832899
作者:jason0539
微博:http://weibo.com/2553717707
博客:http://blog.csdn.net/jason0539(转载请说明出处 0 0
- 广播 应用在activity中相互传值
- 用Broadcast广播在activity之间、fragment之间、activity和fragment之间相互传数据
- 在Activity中注册广播
- 在广播中启动Activity
- 在广播中启动activity或者dialog
- Activity发广播,在Service中接收
- Android中利用广播退出应用的所有activity
- 广播中开启Activity
- android activity 相互传值
- 277_在Activity中发送接收广播
- Android 之在Activity中fragment相互通信
- Activity通过广播进行传值
- Android 实现在Activity中操作刷新另外一个Activity数据列表(①、②广播)
- Android应用:在Activity中添加延时
- 如何在应用中发送自己定义的广播Broadcast
- Activity与Fragment的相互传值
- 适配器与Activity之间相互传值
- Android中的activity跳转新activity以及相互传值
- java程序员的成长之路
- FragmentManag.beginTransaction().add(Res,fragment).commit 报错 Activity has been destroyed
- jQuery实现操作框的实现和隐藏功能
- spring的事务注解@Transactional
- 个人记录-LeetCode 65. Valid Number
- 广播 应用在activity中相互传值
- 用mysqli的方法生成代码生成表
- centos7 docker Dockerfile 生成镜像
- 学习Mac开发第四弹 通过NSImageView加载图片
- java数据结构基础名词解释
- OkGoHttp 学习
- 单例模式
- ajax中JSON.stringify()和JSON.parse()方法的使用
- BZOJ1588 营业额统计