维护Android应用程序中的服务

时间:2015-09-01 10:13:34

标签: java android service android-service-binding

我对Android开发很新,我已经开始制作音乐播放器了。我有两个活动。一个是主要的,您可以看到本地存储中的所有相册并选择一个。选择一个第二个活动启动时,显示该专辑中的歌曲。用户可以点击歌曲并播放歌曲。我已将该服务绑定到该活动,并播放该歌曲。但是,当歌曲开始播放时,我无法导航到之前的活动。

我希望能够返回主要活动并能够继续浏览专辑并选择另一首歌曲。我不确定是否必须再次绑定服务以及如何操作。

以下是代码的一些部分。

清单文件

    <activity
        android:name=".AlbumActivity"
        android:label="@string/app_name"
        android:launchMode="singleTop"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".SongActivity"
        android:screenOrientation="portrait">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="realm.chaos.mplayer.AlbumActivity" />
    </activity>
    <service android:name="realm.chaos.mplayer.MusicService"/>

这是SongActivity中我定义和使用musicService的部分。

private ServiceConnection musicConnection = new ServiceConnection() {
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        MusicBinder binder = (MusicBinder)service;
        musicSrv = binder.getService();
        musicSrv.setList(songList);
        musicBound = true;
    }

    @Override
    public void onServiceDisconnected(ComponentName name) {
        musicBound = false;
    }
};

@Override
protected void onStart() {
    super.onStart();
    if(playIntent == null) {
        playIntent = new Intent(this, MusicService.class);
        bindService(playIntent, musicConnection, Context.BIND_AUTO_CREATE);
    }
}

我不知道这是否有帮助,但是播放歌曲我扩展了Android的默认媒体控制器。我计划在将来改变它,因为它看起来很麻烦,我对它的功能不满意。 我的代码基于本教程http://code.tutsplus.com/tutorials/create-a-music-player-on-android-song-playback--mobile-22778。我的SongActivity实际上是那里描述的活动,而AlbumActivity是我用作父母的新活动。

***我还读过你可以绑定或启动服务。我不确定是建议哪一个。我想让音乐播放并改变观点。我可能会添加更多可能用于更新服务的视图。

0 个答案:

没有答案