caiyonglong / MusicLake

MediaPlayer、Exoplayer音乐播放器,可播在线音乐,qq音乐,百度音乐,虾米音乐,网易云音乐,YouTuBe
Apache License 2.0
2.66k stars 535 forks source link

IMusicServiceStub弱引用service #79

Open MoYuFly opened 4 years ago

MoYuFly commented 4 years ago

public class IMusicServiceStub extends IMusicService.Stub { private static final String TAG = "IMusicServiceStub"; private final WeakReference mService;

作者,你好,这里的mService弱引用,好像并不能被gc回收,我在MainActivity,写了计时器,没三秒触发一次GC,但是这个mService hashcode一直没有变过,是否这个弱引用无效呢? 不停触发GC private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); LogUtil.e(TAG, "触发GC"); handler.sendEmptyMessageDelayed(1, 3000); System.gc(); } }; 由于对弱引用不太了解,所以想问下,弱引用在使用过程中被GC回收了,该怎么办,重新生成弱引用对象吗? 希望解惑,谢谢。 2020-05-22 10:32:42.426 22107-22107/com.cyl.musiclake E/IMusicServiceStub: HashCode=98214344 2020-05-22 10:32:43.346 22107-22107/com.cyl.musiclake E/MainActivity: 触发GC 2020-05-22 10:32:46.356 22107-22107/com.cyl.musiclake E/MainActivity: 触发GC 2020-05-22 10:32:49.221 22107-22107/com.cyl.musiclake E/IMusicServiceStub: HashCode=98214344 2020-05-22 10:32:49.377 22107-22107/com.cyl.musiclake E/MainActivity: 触发GC 2020-05-22 10:32:50.855 22107-22107/com.cyl.musiclake E/IMusicServiceStub: HashCode=98214344 2020-05-22 10:32:52.383 22107-22107/com.cyl.musiclake E/MainActivity: 触发GC 2020-05-22 10:32:53.146 22107-22107/com.cyl.musiclake E/IMusicServiceStub: HashCode=98214344 2020-05-22 10:32:54.384 22107-22107/com.cyl.musiclake E/IMusicServiceStub: HashCode=98214344 2020-05-22 10:32:55.413 22107-22107/com.cyl.musiclake E/MainActivity: 触发GC 2020-05-22 10:32:56.875 22107-22107/com.cyl.musiclake E/IMusicServiceStub: HashCode=98214344 2020-05-22 10:32:58.131 22107-22107/com.cyl.musiclake E/IMusicServiceStub: HashCode=98214344