如何在关机或停电时保留应用程序的状态?

时间:2018-02-06 08:30:24

标签: android sharedpreferences

假设我有一个包含大量活动的应用程序。一些活动播放媒体(音频或视频)。另一方面,假设该设备(在这种情况下是Android TV Box)用于诸如火车的商业环境中。这些设备没有内置电池。这些框从本地服务器流式传输视频。乘客正在观看电影或听音乐曲目,突然发生短暂停电。问题是如何保留应用程序的状态,以便在重新启动设备时,启动用户所在的最新活动,并且媒体从上次播放时恢复播放。
目前,我认为我可以每隔5秒获得一次当前进度并将回放进度保存在SharedPreference中,如下所示:

    SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();

    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
     @Override 
     void run() {
     editor.putInt(getString(R.string.saved_player_progress), exoPlayer.getCurrentPosition());
 editor.putString(getString(R.string.saved_video_uri), videoUri.toString());
     editor.commit();  
     }
    }, 5000, 5000);

通过这种方式,我可以存储视频位置和URI,然后每次启动播放器时都会检查首选项,如果存在匹配uri的存储位置,我将从该点恢复播放。
但是,如何恢复我的应用程序不仅仅是一个组件(一个活动或一个玩家),以便用户启动应用程序并返回之前的活动?

0 个答案:

没有答案
相关问题