怎麼往一個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的綁定