我正在使用一个应用程序,该应用程序使用主屏幕小部件播放来自用户在应用程序主要活动中选择的来源的声音。一段时间后,我的应用程序丢失了有关分配的源文件的信息,我必须重新进入主活动以再次选择声音。我想这是因为我的应用程序被操作系统杀死或者睡着了。
所以我的问题是如何将我在主要活动中设置的那些设置保持不变,以便我的主屏幕小部件在一定时间后不会停止工作。
此外,我想知道是否有需要,以某种方式保持此主要活动,因为主屏幕小部件在按下按钮时向其发送广播,以使其向我的媒体播放器服务发送消息,这会播放声音。
答案 0 :(得分:1)
您需要使用SharedPreferences。
//Set the shared preferences
SharedPreferences prefs = getSharedPreferences("myPrefs", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("myString", "myValue");
//Get the shared preferences
string myString = prefs.getString("myString");
关于问题的第二部分,您可能需要运行广播接收者和活动可以使用的后台服务。
不应该从小部件控制活动,而是活动GUI和Widget控件访问后台服务中的方法来控制媒体播放器服务。
我不太了解媒体播放器服务或后台任务,所以也许有人有更好的方法,但希望能让你入门。
有关Android上服务的一些信息可以在http://developer.android.com/reference/android/app/Service.html
找到