サービスをバインドすることができ、サービスインスタンスを永久に持つことができます。サンプルコードの下にはあなたを助ける: -
サービスあなたはその後、どこでもあなたが活動に必要なservice
を使用することができ、クラス
public class MusicService extends Service {
MyBinder binder=new MyBinder();
MusicService services;
static Context context;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return binder;
}
@Override
public void onCreate() {
super.onCreate();
context=getApplicationContext();
MediaPlayer mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.yaar);
mPlayer.start();
}
public class MyBinder extends Binder
{
public MusicService getServiceSystem()
{
return MusicService.this;
}
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
活動
public class MainActivity extends AppCompatActivity {
MusicService services;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ServiceConnection connection=new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
MusicService.MyBinder binderr=(MusicService.MyBinder)service;
services=binderr.getServiceSystem();
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
Intent intent= new Intent(this, MusicService.class);
startService(intent);
}
}
。それが役に立てば幸い。
アクティビティとサービスの間で通信するためにバインドサービスを使用しないのはなぜですか?私はこれがあなたにデータを共有するためにもっと柔軟になると思います。 –