【发布时间】:2016-01-10 18:33:09
【问题描述】:
我是 Android 开发的新手,我试图在每天的特定时间更新一个值,以便当用户打开应用程序时,该值是当天的当前值。 我这样做的方式是调用一个警报,该警报执行我的 mainactivity.java 中的一个方法,该方法编辑 sharedPreferences 中的一个值。代码示例:
--------------MainActivity.java------ --------
protected void onCreate(Bundle savedInstanceState) {
[...]
int myVar=0;
//Retrieving my saved data
int sPSavedData=getPreferences(Context.MODE_PRIVATE).getInt("DATA", 0);
if(sPSavedData!=(0))
{
myVar=sPSavedData;
}
[...]
}
//doing my thing
public void myCode(){
myVar=+1;
saveSP();
}
//saving data in Shared Preferences
public void saveSP(){
SharedPreferences.Editor sPEditor=getPreferences(Context.MODE_PRIVATE).edit(); //<---I get an error here
sPEditor.putInt("DATA", myVar);
sPEditor.commit();
}
[...]
然后是我的具有接收器的 Alarm.java 文件:
[...]
public void onReceive(Context context, Intent intent)
{
MainActivity code=new MainActivity();
code.myCode();
}
[...]
尝试执行此操作时出现错误
sPEditor=getPreferences(Context.MODE_PRIVATE).edit()
并且理解 logcat 我理解它与无法检索包名称有关。
有什么方法可以修复我的错误或任何其他方法来做我想做的事情吗?
【问题讨论】:
标签: java android sharedpreferences alarmmanager