我正在为Android制作音乐播放器应用程序,我在改变手机方向的同时保持音乐播放存在问题。
integration = Integration.last
Integration Load (3.9ms) SELECT "integrations".* FROM "integrations" ORDER BY "integrations"."id" DESC LIMIT $1 [["LIMIT", 1]]
(Object doesn't support #inspect)
我试过
清单中的create_table "integrations", force: true do |t| t.datetime "created_at" t.datetime "updated_at" t.string "integration_type" t.text "api_data" end
它可以工作,但仅适用于从垂直方向到水平方向的第一次更改。当我再次从水平变为垂直时,相同的歌曲从开始时开始,而旧的仍在播放,所以我在同一时刻播放了2首歌曲。任何人都可以帮我吗?
答案 0 :(得分:0)
保持配置更改并添加覆盖到onconfig ...
@Override
public void onConfigurationChanged(Configuration newConfig) {
}
当方向改变时默认调用oncreate,你需要像这个例子一样覆盖它,或者使用单例作为媒体播放器,这样它就不会创建其中两个
答案 1 :(得分:0)
这只是愚蠢但我只是让玩家保持静止。它有所帮助,现在它不会创建其他实例
答案 2 :(得分:0)
当您定位设备时,它会重新绘制布局,这就是活动重新启动的原因(调用onC onCreate()
)。您可以通过覆盖此方法来保存实例:
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
}
并通过覆盖此方法恢复实例:
@Override
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
我在github上创建了关于此主题的源代码,保存了实例并进行了恢复。也许在某些情况下它会帮助你。 Orientation Mode