Ich verwende statische Variable in einer Klasse in Android:Halten Sie statische Variablen für einen längeren Zeitraum - Android
class Test{
static int x;
}
Diese Variablen gelöscht werden, wenn die Klasse entladen wird oder wenn die VM anhält.
Ich muss diese Variable für einen längeren Zeitraum beibehalten, aber SharedPreferences oder einen permanenten Speicher kann ich nicht verwenden, da die Informationen in diesem statischen Feld empfindlich sind und nicht in einem zugänglichen Speicher gespeichert werden sollten.
Irgendwelche Vorschläge?
Edit:
Wie der Android-Dienst im Hintergrund ausgeführt wird, und ist weniger durch die OS gestoppt werden, habe ich beschlossen, in einer Service-Klasse das statische Feld zu setzen, aber seltsam ist dies das Problem nicht lösen, scheint, dass OS die Dienstklasse entlädt, selbst wenn der Dienst selbst noch im Hintergrund läuft, oder zumindest so aussieht, als ob er wieder geladen wird, wenn ein Ereignis aufgerufen wird, ich weiß nicht genau, was passiert, aber das statische Feld wird danach NULL eine Zeit lang, als ich eine Benachrichtigung in einem Timer gesetzt habe, um das zu überprüfen. kann das jemand bestätigen?
Datenbank verwenden? Sie können es auch verschlüsseln. –
Was meinen Sie mit "zugänglicher Speicher"? Die einzigen Personen, die auf SharedPreferences zugreifen können, sind diejenigen, die ihr Gerät rooten. Es ist nicht so, dass dein Feld irgendwie magisch gegen alle anderen sicher ist. Schließlich können die Menschen mit den entsprechenden Werkzeugen auch dazu kommen. Welches Profil des angreifenden Angreifers kann auf diesen "sensiblen" Wert zugreifen? – CommonsWare
Ich weiß, dass die SharedPreferences Root-Zugriff benötigt, um gelesen zu werden, aber es ist schwieriger für Angreifer auf den RAM zuzugreifen. Wenn ich also eine RAM-Disk oder ähnliches erstellen kann, wird mein Problem gelöst – ammcom