2013/01/24

Android:manageSpaceActivityによるデータ管理




アプリ管理画面(右図)には、アプリデータを削除するためのボタン[データを消去]が用意されています。
この機能はデータベースを含むアプリデータ全てを消去するものです。
つまり、消去の対象には"アプリの設定情報"も含まれます。

ユーザはストレージの空き容量を確保する目的でこの機能を使用することがあります。
しかし、アプリデータの全削除が空き容量を確保するためのベストな手段とは限りません。
「アプリの設定情報は残して、不要で無駄にサイズの大きなデータを削除したい」と思うユーザもいるでしょう。
このような場合は、"アプリデータ管理用Activity"の採用を検討します。


●ManageSpaceActivity

開発者は[データを消去]ボタンが押された場合に、データの消去ではなく
指定のActivityを起動するようカスタマイズすることができます。

指定するにはAndroidManifest.xmlで下記のように、applicationタグの
android:manageSpaceActivity属性に、起動したいActivity名を指定します。
<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:manageSpaceActivity=".DataManagementActivity" >
    <activity
        android:name=".DataManagementActivity"
        android:label="@string/label" >
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
これを指定すると、[データを消去]ボタンが[容量を管理]ボタンに変更され、
ボタン押下時に指定のActivityが起動されます。


ユーザに全消去以外の選択肢を提供したい場合に使えるテクニックです。

以上です。