私はサービスでArraylistを更新しているバックグラウンドサービスに取り組んでいます。Arraylistからインデックスを取得して曲を演奏しています。サービス接続がonResumeで呼び出されないのはなぜですか?
私は別のアクティビティを意図し、そのアクティビティの中で私はArraylistをサービスに更新していますが、私がアクティビティを終了してMainActivityに戻ったときに再びArraylistを更新していないのです。
私は、データを格納するために領域のarraylistを使用しています。
@Override
protected void onStart() {
super.onStart();
songConnection();
if (playIntent == null) {
playIntent = new Intent(this, MusicService.class);
bindService(playIntent, musicServiceConn, Context.BIND_AUTO_CREATE);
startService(playIntent);
}
}
@Override
protected void onResume() {
super.onResume();
songConnection();
}
public void songConnection() {
musicServiceConn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
MusicService.MusicBinder binder = (MusicService.MusicBinder) service;
musicSrv = binder.getService();
musicSrv.setList(musicRealmResults);
musicBound = true;
}
@Override
public void onServiceDisconnected(ComponentName name) {
musicBound = false;
}
};
}
ここで、musicRealmResultsはレルムアラレイリストです。 MainActivity.java
musicRealmResults = realm.where(Music.class).findAll();
で
Albums.java で
musicRealmResults = realm.where(Music.class).equalTo("albums", albums).findAllSorted("albums", Sort.ASCENDING);
だから、両方の活動にArrayListのサイズが異なることになり、サイズごとのように、サービスを更新する必要があります。
アクティビティが完了したときに、なぜそれがonResumeで更新されないのか教えてください。
私の投稿に行って、解決策を提案してください。このような
SongConnection()でサービスを開始していません – Jois
さらにコードを入力してください。サービスを開始/初期化する場所 –
musicSrv.setList(musicRealmResults); musicRealmResultsはどこから来ますか?以前の活動に戻ると更新されますか? –