Tabhost中Activity绑定Service】的更多相关文章

在android中,一个Activity绑定一个Service组件我们一般用Context().bindService方法就能够.可是假设这个 Activity属于一个Tabhost的话就不行了,在网上查了一下,发如今Google Android Issue中有这个缺陷,缺陷具体信息在这里(Google Android Issue 2483),三楼的oliver给出了正解    Using getApplicationContext().bindService instead of just b…
activity可以绑定Service,并且可以调用Service中定义的方法 Service代码:在里面多了一个IBinder;个人理解是用来与Activity绑定的主要通道: public class MainServer extends Service { private final String TAG = "Service------->"; private final IBinder binder = new MyBinder(); //绑定器 public clas…
在Android中,我们通常需要Activity跟Service进行通讯,很多人只知道Activity掉用Service,却不知道Service如何将数据返回给Activity.其实Service返回数据给Activity有很多种方法,1.广播.2.回调.3.Activity每隔几秒去取Service的方法等等.现在我们只讨论第二种方法.回调.举个例子,我们Activity里面有两个参数a 和b,这时需要计算a和b的和,但是不能在Activity里面计算.需要在Service里面去计算.这时计算…
Activity.Service和线程应该是Android编程中最常见的几种类了,几乎大多数应用程序都会涉及到这几个类的编程,自然而然的,也就会涉及到三者之间的相互通信,本文就试图简单地介绍一下这三者通信的方式. 想写这篇文章的起因是,笔者跟几个同学在做一个Android上的应用,起初代码写得很凌乱,因为我在Activity中直接创建了线程,去执行某些任务.但是我们知道线程可能需要运行的时间比较长,而Android在内存不足的时候,会将一些Activity销毁,这样线程就会失去了管理的对象,从而…
[1]如果是tabhost中的activity跳到其他的activity,用这篇blog的方法即可 http://blog.sina.com.cn/s/blog_8db8914301010t31.html public class AnimCommon { public static int in = 0; public static int out = 0; public static void set(int a, int b){ in = a ; out = b; } public sta…
和activity中互相传值类似 在activity中 Intent regIntent = new Intent(this, ChatService.class);  regIntent.putExtra("student_id", student_id);  startService(regIntent); 然后再service中的onStart函数中获取该值 student_id=intent.getStringExtra("student_id");  Sy…
分两种情况,如果是本地线程,肯定是同一个进程中的, 如果是远程服务,那么activity和service将在不同的进程中的 ----- 非远程服务,和Activity属于同一个进程和线程:而远程服务和Activity分别运行在不同的进程中…
bindService获得Service的binder对象对服务进行操作 Binder通信过程类似于TCP/IP服务连接过程binder四大架构Server(服务器),Client(客户端),ServiceManager(DNS)以及Binder驱动(路由器) 其中Server,Client,ServiceManager运行于用户空间,驱动运行于内核空间.这四个角色的关系和互联网类似:Server是服务器,Client是客户终端,SMgr是域名服务器(DNS),驱动是路由器. book.java…
例子1: TabHost tabhost = (TabHost) findViewById(android.R.id.tabhost); tabhost.setup(this.getLocalActivityManager()); Intent intent1 = new Intent(this,Second.class); Bundle bundle1 = new Bundle(); bundle1.putStringArray("string", strings1); bundle…
使用Messenger 上面的方法只能在同一个进程里才能用,如果要与另外一个进程的Service进行通信,则可以用Messenger. 其实实现IPC(Inter-Process Communication,进程间通信)的方式,还有AIDL,但推荐使用Messenger,有两点好处: 1. 使用Messenger方式比使用AIDL的方式,实现起来要简单很多 2. 使用Messenger时,所有从Activity传过来的消息都会排在一个队列里,不会同时请求Service,所以是线程安全的.如果你的…