-1

配列 { devicename, macaddress, updated } を Android アプリケーションに保存し、ユーザーがアプリを閉じたらデータを破棄する最良の方法は何でしょうか。

更新:ストアとは、SQLite、内部ストレージ(ファイルを作成してから削除)などを使用することを意味します。これを行うためのベストプラクティスはありますか?尋ねる理由は、毎回 API を呼び出すのではなく、データにアクセスする必要があるためです。

私はAndroid開発に不慣れなだけです。

4

1 に答える 1

1

Array または Map のようなオブジェクトのプライベート インスタンスは、まさに必要なもののようです。あなたの質問と上記のコメントに基づいて、不揮発性ストレージや派手な Map オブジェクトを使用する理由はないと思います。

Android 開発者向けドキュメントから少し借りて、アプリにアクティビティを実装すると仮定すると、コードは次のようになります。

...

import java.util.HashMap;
import java.util.Map;

....

public class ExampleActivity extends Activity {

    public static final String TAG = "ExampleActivity";

    // create an enum to hold your key values (plain old strings could work too)
    private enum ApiKey {
        NAME, MAC, UPDATED
    };

    //declare your data structure
    private Map<ApiKey, String> myCachedApiData;   

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // The activity is being created.

        // initialize your data in onCreate()
        myCachedApiData = new HashMap<ApiKey, String>();

        // retrieve initial data from your API
        // you may want to do this on another thread if it takes a while

        ...

        // put data in your map
        myCachedApiData.put( ApiKey.NAME, deviceNameStr );
        myCachedApiData.put( ApiKey.MAC, macAddressStr );
        myCachedApiData.put( ApiKey.UPDATED, updatedStr );
    }
    @Override
    protected void onStart() {
        super.onStart();
        // The activity is about to become visible, lets
        // print out (access) some of our cached API data
        // each time the user views our Activity

        Log.d( TAG, "MAC addr is: " + myCachedApiData.get( ApiKey.MAC ) );

    }
    @Override
    protected void onResume() {
        super.onResume();
        // The activity has become visible (it is now "resumed").
    }
    @Override
    protected void onPause() {
        super.onPause();
        // Another activity is taking focus (this activity is about to be "paused").
    }
    @Override
    protected void onStop() {
        super.onStop();
        // The activity is no longer visible (it is now "stopped")
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // The activity is about to be destroyed.

        // No need to explicitly clear our map, it will be removed when our
        // Activity is destroyed

        // myCachedApiData.clear();
    }
}
于 2014-08-05T14:02:01.827 に答える