2013-03-04 8 views
8

Używam database do przechowywania niektórych data. Ale kiedy użytkownik przejdzie do Apps Setting s i naciśnij przycisk 'clear data' w ustawieniach aplikacji, dane w bazach danych zostaną usunięte, jak można tego uniknąć. Czy mogę wykonać 'clear data' BUTTON, aby moja aplikacja w ustawieniach Aplikacji nie była włączona lub jakiekolwiek inne sugestie ...Unikaj usuwania danych z bazy danych po kliknięciu przycisku "wyczyść dane" w ustawieniach aplikacji na urządzeniu z Androidem.

+0

Możesz zobaczyć ten http://stackoverflow.com/questions/6531173/how-to-disable-the-clear-data-button-in-ap-ication-info-of-manage-appliaction – MRX

+0

Odpowiedz tutaj - http://stackoverflow.com/questions/6531173/how-to-disable-the-clear-data-button-in-ap-ication-info-of-manage-appliaction –

Odpowiedz

1

Wreszcie znalazłem jakieś rozwiązanie, Jeśli się z administratorem systemu, a następnie jego zastosowanie nie jest możliwe, aby usunąć dane i odinstaluj APP

+1

Jak utworzyć administratora systemu aplikacji? jakie ustawienie chcesz zrobić programowo? – Piraba

3

Nie ma bezpośredniego sposobu na uniknięcie wyczyszczenia danych aplikacji z tego, co wiem.

Można jednak przechowywać dane na zewnętrznej pamięci masowej (karcie SD) w niektórych plikach i przy każdym uruchomieniu aplikacji sprawdzić, czy plik tam jest i scalić jego zawartość z bazą danych. To oczywiście nie zadziała, jeśli użytkownik ręcznie usunie plik kopii zapasowej z karty SD, wstawi inną kartę SD, usunie kartę SD lub połączy urządzenie jako podłączony dysk z komputerem, a następnie uruchomi aplikację.

3

Android nie zapyta, czy Twoja aplikacja ma zostać usunięta, czy nie. Jest to funkcja systemowa dostarczana użytkownikowi. Użytkownik ma możliwość całkowitego odinstalowania aplikacji.

Utwórz/otwórz plik bazy danych w innym miejscu.

trwałość danych:

  1. App Cache reż: usunięte, gdy pamięć wewnętrzna jest niska.
  2. Katalog danych aplikacji: usunięty, gdy użytkownik wyczyści dane aplikacji, aplikacja zostanie odinstalowana.
  3. Pamięć zewnętrzna: użytkownik może usunąć w dowolnym momencie, użytkownik może również usunąć miejsce.
  4. Menedżer kopii zapasowych: nowe wersje oferty Android Apps do tworzenia kopii zapasowych danych w chmurze za pomocą BackupManager.
  5. Serwer zdalny: Pozostaje na serwerze do czasu usunięcia.
3

Dodaj android:manageSpaceActivity=".ActivityOfMyChoice" do znacznika aplikacji za Oczywisty jak:

<application android:label="MyApp" android:icon="@drawable/icon" android:manageSpaceActivity=".ActivityOfMyChoice" >

Wtedy zamiast „Wyczyść dane”, znajduje się przycisk „Zarządzanie przestrzenią”, który uruchamia ActivityOfMyChoice

ActivityOfMyChoice.java

public class ActivityOfMyChoice extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    finish(); 
} 

Po kliknięciu czynności Mange kończy działanie.

1

myślę istnieje sposób, ale nie próbowałem jeszcze. Możesz przechowywać swój plik DB w folderze zasobów, sprawdzić, czy jest dostępny, w przeciwnym razie po prostu to lubię https://stackoverflow.com/a/9109728/265167 (zwróć uwagę na klasy DataBaseHelper). Ale w ten sposób utracisz wszystkie "dane aktualizacji".

Powiązane problemy