怎么往一个service传入activity中上下文对象。
就是我要在service根据传入进来的context进行设置界面。利用构造函数不知道怎么弄。在service中不能进行setcontentview()。
就是为了解决这个问题。
------解决思路----------------------
public class MyService extends Service{
private Context context;
public MyService(Context context) {
this.context = context;
}
//....to do something
}
------解决思路----------------------
service和activity都是继承ContextWrapper,所以他们本身就是一个Context。如果是想实现在service中更新某个activity的界面,有一种方案是,在service发送广播,然后在activity拦截广播,并进行相应的更新UI。
------解决思路----------------------
public class MyService extends Service
{
MyBinder binder = null;
@Override
public IBinder onBind(Intent intent)
{
if(binder==null){
binder = new MyBinder();
}
Toast.makeText(getApplicationContext(), "返回bind对象", Toast.LENGTH_SHORT).show();
return binder;
}
class MyBinder extends Binder
{
String stringToSend = "绑定service";
public MyService getService()
{
return MyService.this;
}
}
Context context;
public void setContext(Context context){
this.context=context;
}
}
绑定时
MyService mService= null;
ServiceConnection conn=new ServiceConnection()
{
@Override
public void onServiceDisconnected(ComponentName name)
{
// TODO Auto-generated method stub
}
@Override
public void onServiceConnected(ComponentName name, IBinder service)
{
MyBinder binder = (MyBinder) service;
mService=binder.getService();
mService.setContext();
}
};
};
这样应该也可以传,不过配合的是service的绑定