Was die Probleme hier ist?
Das Problem ist, dass Sie sich auf das "Ergebnis" und nicht auf die "Ursache" konzentrieren.
Es ist schwierig, ein Problem zu diagnostizieren, wenn Sie nur eine kleine Codeprobe gegeben haben, und der Grund für einen "Absturz" ist, dass Sie den try/catch-Block auskommentiert haben.
Soweit ich aus diesem kleinen Codebeispiel interpretieren kann, wenn Sie manchmal eine NullPointerException sehen, kann es nur deshalb sein, weil mycontext.getSharedPreferences() ein 'null' zurückgibt. In diesem Fall funktioniert alles, was die Einstellungen speichern soll, nicht.
Schauen Sie sich Ihren Code an, der die Einstellungen speichert - ich vermute, dass hier die Antwort liegt.
EDIT: OK, Blick auf den Code, den Sie in einer Antwort (es sollte wirklich in Ihre Frage bearbeitet worden sein).
Es gibt nur einen Anruf zu saveStringValue() hier ...
private static void loadmm(RemoteViews updateViews, Context context, int appWidgetId) {
String now_date=getFullHungaryDate();
String mm="";
boolean error=false;
if (isInternetOn()) {
// try {
mm=getALL();
if (!mm.equals("")) {
String frissitve=now_date+" "+getTime();
updateViews.setTextViewText(R.id.mm, Html.fromHtml(mm));
updateViews.setTextViewText(R.id.ma, "Fr. "+frissitve);
saveStringValue("frissitve", frissitve, context);
}
...
}
}
... und es gibt nur einen Anruf zu loadStringValue() hier ...
private static String getALL() {
String sOut = "";
String sOutAll = "<br>";
Boolean err = false;
HttpStringCutter Cutter = new HttpStringCutter();
Calendar calendar = Calendar.getInstance();
int hnow=calendar.get(Calendar.HOUR_OF_DAY);
if (hnow>1) hnow--;
String hour=Integer.toString(hnow);
String min=Integer.toString(calendar.get(Calendar.MINUTE));
String LISTAZAS =loadStringValue("listazas", mycontext);
...
}
Die erste spart "frissitve" und die zweite lädt "listazas", so ist es immer noch unklar, was das Problem ist. Der Punkt, den ich versuche zu machen ist, dass, wenn 'manchmal' eine NullPointerException bei Verwendung von settings.getString() in loadStringValue() erhalten wird, der einzige Grund dafür sein kann, dass saveStringValue() nicht zuvor zum Speichern dieser Zeichenfolge aufgerufen wurde. Sie müssen sehen, warum das manchmal passieren könnte.
ja, ich habe auch einen mycontext. Das Seltsame ist, dass Nullexzeption manchmal auftaucht. – lacas
Und ist 'saved_pref_file' gesetzt und existiert? Vielleicht gibt 'mycontext.getSharedPreferences' null zurück und die NPE erscheint auf dem' .getString'. – ccheneson