两个应用通过广播BroadCast传送数据
2015-10-04 19:18
295 查看
今天碰到一个问题,就是一个应用activity向另一个应用的service传送数据。AIDL肯定每个人都会知道。不过AIDL个人感觉有点麻烦,就想着能不能用广播发送数据。于是,动手写了Demo,经测试,在同一个开发板上,一个应用通过广播向另一个应用发送数据,另一个应用能够接收到数据的。
Demo如下:
应用一:
另一个应用:
这个应用中的service:
打印结果如下:
activity与service交互的方法: 通过广播(两者可以互相发送),好用!!!
Demo如下:
应用一:
package com.example.activity1; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener{ private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.send); btn.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.send: Toast.makeText(MainActivity.this, "开始发送广播", Toast.LENGTH_SHORT).show(); Intent intent = new Intent("SEND_BROCAST"); intent.putExtra("value", 2); MainActivity.this.sendBroadcast(intent); break; } } }
另一个应用:
package com.example.activity2; 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.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.startService(new Intent(MainActivity.this, receiveService.class)); } }
这个应用中的service:
package com.example.activity2; import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.IBinder; public class receiveService extends Service{ private ComandReceiver cr; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); cr = new ComandReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction("SEND_BROCAST"); registerReceiver(cr, filter); } @Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, flags, startId); } public class ComandReceiver extends BroadcastReceiver{ public int status; @Override public void onReceive(Context context, Intent intent) { status = intent.getIntExtra("value", -1); System.out.println(status); } } }
打印结果如下:
activity与service交互的方法: 通过广播(两者可以互相发送),好用!!!
相关文章推荐
- 【状态dp】poj 1185 炮兵阵地(三维dp)
- opencv笔记4:模板运算和常见滤波操作
- [bzoj2750][HAOI2012]Road
- 有感
- 二叉树的创建(先序创建的)及先序遍历 中序遍历 后序遍历的递归和非递归实现
- Servlet的学习之Response响应对象(2)
- Altium Designer-- 一点总结
- Linux下c语言环境概述
- C++基础编程----2.3标准库类型vector
- vmware: The file system upon which * resides is critically low on free space.
- vmware: The file system upon which * resides is critically low on free space.
- codeforces 163A A. Substring and Subsequence(dp)
- 数据挖掘之关联规则和频繁项集
- log4j日志文件配置说明及使用
- 数据挖掘之关联规则和频繁项集
- zend framework安装中出现的问题与总结
- C++输出格式控制
- 10.1训练赛-北京现场赛--HDU5122
- gdb调试器
- C++学习(二)-虚基类(2)