Java 我可以在服务类中使用setters/getter类吗?

Java 我可以在服务类中使用setters/getter类吗?,java,android,service,Java,Android,Service,我有一个控制媒体播放的服务类,但我想知道在我的服务中使用单独的getter/setters类是否不好 在显示我所有歌曲的片段中,当我单击一首歌曲时,我调用setter方法setSongIndex();setSongList() 然后在我的服务类中调用playSong()方法中的getter方法: 单击next/previous song,我再次调用setter方法来替换songIndex 现在我不确定的是,最终我的应用程序会崩溃,我想,因为当我从最近的应用程序中刷走我的应用程序时,它会破坏除后台

我有一个控制媒体播放的服务类,但我想知道在我的服务中使用单独的getter/setters类是否不好

在显示我所有歌曲的片段中,当我单击一首歌曲时,我调用setter方法
setSongIndex();setSongList()

然后在我的服务类中调用playSong()方法中的getter方法:

单击next/previous song,我再次调用setter方法来替换songIndex

现在我不确定的是,最终我的应用程序会崩溃,我想,因为当我从最近的应用程序中刷走我的应用程序时,它会破坏除后台运行的服务之外的所有类

因此,不会收到对我的getter/setters方法的调用,因为我的应用程序已被终止,只有服务仍在运行

奇怪的是,我的应用程序运行得非常好,我从最近的应用程序列表中删除了它,并且仍然可以从调用setters/getter的通知中调用下一首/上一首歌曲

getter/setter类

public static void setSongIndex(int index){
    songIndex = index;
}

public static void setSongList(ArrayList<Song> songs){
    songList = songs;
}

public static ArrayList<Song> getSongList(){
    return songList;
}

public static int getSongIndex(){
    return songIndex;
}
private void nextSong(){
         if (songIndex == songList.size() - 1) {
             songIndex = 0;
             Song.setSongIndex(songIndex);
             activeSong = songList.get(songIndex);
         }else{
             ++songIndex;
             Song.setSongIndex(songIndex);
             activeSong = songList.get(songIndex);
             Toast.makeText(getApplicationContext(), "You Clicked position: " + songIndex + " " +  songList.get(songIndex).getData(), Toast.LENGTH_SHORT).show();
         }
         stopSong();
         playSong();

         //Send broadcast update song info
         Intent UpdateSongBroadCastReceiver = new Intent(Constants.ACTIONS.BROADCAST_UPDATE_SONG);
         sendBroadcast(UpdateSongBroadCastReceiver);
    }

private void playSong(){
    songList = Song.getSongList();
    songIndex = Song.getSongIndex();
    Log.i(TAG,"songList: " + songList);
    activeSong = songList.get(songIndex);
    mediaPlayer.reset();
    try {
        mediaPlayer.setDataSource(activeSong.getData());
        mediaPlayer.prepare();
        mediaPlayer.start();
    } catch (Exception e) {
        Log.e(TAG, "ERROR SETTING DATA SOURCE", e);
        Main.unbindService(getApplicationContext());
        stopSelf();
    }
    NotificationBuilder(PlaybackStatus.PLAYING);
}

你只回答一行

It depends on your situation 
但在存储库或数据访问对象类中理想地使用访问器(也称为getter和setter)


你可以阅读更多关于这方面的内容

只要一行回答即可

It depends on your situation 
但在存储库或数据访问对象类中理想地使用访问器(也称为getter和setter)


你可以阅读更多关于这方面的内容

简短的回答是否定的。服务是一个特殊的组成部分,而不是一个普通的课程。你可能会觉得这很有帮助@Froyo那么通过服务中的访问器发送和获取数据是不好的?是的,您不会一直都有可用的服务实例。在这种情况下,如果android终止并重新启动您的服务,您将拥有的服务实例将不再有用。简短的回答是否。服务是一个特殊的组件,而不是一个常规类。你可能会觉得这很有帮助@Froyo那么通过服务中的访问器发送和获取数据是不好的?是的,您不会一直都有可用的服务实例。在这种情况下,如果android终止并重新启动您的服务,您将拥有的服务实例将不再有用。那么,当我的应用终止且只有我的服务在后台运行时,我仍然可以访问此类?那么,当我的应用终止且只有我的服务在后台运行时,我仍然可以访问此类?