2012-03-20 8 views
3

私は、ユーザーが可能性のリストから実行したい活動を覚えておくためのカスタム設定を作成しています。 (セレクタのこの種の意図を見ると、常にこのアクティビティを起動しますが、特にシステム全体ではなく、特定のアプリケーションの結果を覚えています)Androidの起動インテントを持続させますか?

これは

Intent myIntent = new Intent(); 
    myIntent.setAction(Intent.ACTION_SEND); 
    myIntent.setType("text/plain");  
    myIntent.putExtra(Intent.EXTRA_TEXT, "Probe text"); 

    PackageManager manager = getContext().getPackageManager(); 
    List<ResolveInfo> infoList = manager.queryIntentActivities(myIntent,PackageManager.MATCH_DEFAULT_ONLY); 

... ResolveInfoのリストになります。

私の質問では、ユーザーがこれらのいずれかを選択すると、これを環境設定として保持する最良の方法は何ですか?つまり、私のSharedPreferences(可能であれば単一の項目)に何を書き込むのですか?また、次のアプリケーションの実行時にそれを読んで対応するIntentを消してしまうのですか?

答えて

3

さて、あなたはそれはあなたがして、標準toString()経由StringになることができUriに変換する必要がありIntenttoUri()を呼び出すことができます。処理を元に戻すには、Stringをを使用してIntentに解析します。

ただし、次のような様々な可能性に対処するのに十分な保護に追加する必要があります。

  • ユーザーは、ユーザーがアプリをアップグレードしないと、アプリはもはやサポートアプリ
  • を削除しましたIntent保存済み

また、プローブ(テキスト)を貼り付ける場所には注意してください。 :-)

+0

ありがとう、それはうまくいくようです。私は削除された/変更されたアプリケーションと、私のプローブとの両方に注意しています:) –

関連する問題