2012-09-19 3 views
0

정수 + 개체 쌍이있는 HashMap이 있지만 장치의 전원이 꺼졌다 켜지면 목록이 사라지고 이후에 데이터를 검색 할 수 있어야합니다. 그렇지 않으면 내 HashMap이 무의미합니다. . 나는 HashMap과 내가 넣고있는 객체로 Serializable을 확장하는 번들을 시도했다. 누구도이 작업을 수행하는 방법을 알고 있는가? 가장 좋은 방법은 ObjectOutputStream입니다 생각하지만, 그냥 그것을 할 방법을 해결할 수 없습니다. 누구나이 튜토리얼/예제를 통해 나를 안내하거나 빠른 정보를 줄 수 있습니까?장치 다시 시작 후 HashMap 검색

는 많은 장치가 꺼져되면

+0

선호도를 시도 했습니까? – Yahor10

답변

4

높이 평가에서, 목록

목록은 또한 당신이 종료 또는 응용 프로그램을 다시 시작할 때 사라 사라집니다. 그것을위한 데이터베이스를 만듭니다.

See here

0

전화에 데이터를 저장하는 콘텐츠 제공자는 당신의 최선의 선택입니다. 그들은 가장 쉽게 시작하지 않습니다. 그러나 간단한 컨텐츠 제공자를 구현하는 안드로이드에서 제공되는 샘플 Notes 애플리케이션이 있습니다.

체크 아웃 http://developer.android.com/guide/topics/providers/content-providers.html

그러나 메모장 샘플 응용 프로그램

또는 참조 How to store hashmap so that it can be retained it value after a device reboot?

2

자바 객체를이 질문에 대한 세부 정보를 가지고 더 중요한 것은이 http://developer.android.com/guide/topics/providers/content-provider-creating.html - 심지어 직렬화 할 수있는을 - 실제로 직렬화하고 데이터를 지속적으로 저장하는 조치를 취하지 않는 한, 프로세스가 살아있는 동안에 만 살아 있습니다. SQLite 데이터베이스 또는 SharedPreferences를 포함하여 여러 가지 옵션이 있습니다. Read this guide.

0

Samir Mangroliya가 말했듯이. 휴대 전화를 다시 시작하면 Hashmap에있는 모든 데이터가 사라집니다. 데이터를 저장하려면 SQLite을 사용해보십시오. Integer을 데이터베이스의 각 열에 Primary Key으로 저장합니다.

1

이 코드 SharedPreferances에 데이터를 저장할 수 있습니다 How to serialize an object into a string

다음과 같이 응용 프로그램 호출 떨어지게을 재개 한 후 : toString() 방법은 거기에서 촬영

Map<Integer, Object> aMap = new HashMap<Integer, Object>(); 
    aMap.put(String.valueOf(1), object1); 
    aMap.put(String.valueOf(2), object2); 
    aMap.put(String.valueOf(3), object3); 

    SharedPreferences keyValues = getSharedPreferences("Your_Shared_Prefs", Context.MODE_PRIVATE); 
    SharedPreferences.Editor keyValuesEditor = keyValues.edit(); 

    for (Integer s : aMap.keySet()) { 
     keyValuesEditor.putString(String.valueOf(s), toString(aMap.get(s))); 
    } 
    keyValuesEditor.commit(); 

SharedPreferences keyValues = getSharedPreferences("Your_Shared_Prefs", Context.MODE_PRIVATE); 
    Map<Integer, Object> map = new HashMap<Integer, Object>(); 
    for (String key : keyValues.getAll().keySet()) { 
     map.put(Integer.valueOf(key), fromString(keyValues.getString(key, null))); 
    }