3

何度もグーゲル化した後、あるアプリケーションから別のアプリケーションにオブジェクトを渡す方法が見つかりませんでした。Parcelを使用して、あるアクティビティから別のアクティビティにオブジェクトを渡すことができることは知っていますが、アプリケーション間でこれを行うにはどうすればよいですか?私の目的はこれです

public class MyObject
{
    private String name;
    public String getName()
    {
        return this.name;
    }
    public void setName(String name)
    {
        this.name=name;
    }
}

次に、アクティビティ間でオブジェクトを渡す場合と同じようにこれを行う方法

intent.putExtra("key",new MyOject());

4

6 に答える 6

3

あなたは両方のアプリケーションを担当していると思います。

これらの状況のうち、正しいものはどれですか?

  • 両方のアプリケーションが 1 つのデータ ストアに依存している
  • アプリケーションはかなり独立していますが、ユーザーはあるデータから別のデータを共有したい場合があります。

最初の状況が当てはまる場合、通常の方法は、AIDL 言語を使用して API を公開する Android コンテンツ プロバイダー (前述のとおり) またはサービスを作成することです。両方のアプリケーションは、コンテンツ プロバイダまたはサービスに依存します。

AIDL とサービスの詳細については、http: //developer.android.com/reference/android/app/Service.html http://developer.android.com/guide/components/aidl.htmlを参照してください。

ただし、アプリケーションがピアである場合、インテントに関する既存の回答は適切です。1 つのアプリケーションが単に を使用して別のアプリケーションをトリガーできるstartActivityようにするか、ユーザーがオブジェクトを一方から他方に共有することを選択できる方法を提供したい場合があります。これを見てください: http://developer.android.com/training/sharing/send.html

于 2013-02-05T13:58:40.377 に答える
1

1つの提案は、ContentProvidersを使用することです。

参照から:

コンテンツプロバイダーは、Androidアプリケーションの主要な構成要素の1つであり、アプリケーションにコンテンツを提供します。データをカプセル化し、単一のContentResolverインターフェイスを介してアプリケーションに提供します。

別の提案は、正しいモードのgetSharedPreferencesでSharedPreferencesを使用することです。ただし、リファレンスでわかるように、APIレベル17以降、一部のモードは非推奨になっています。

以下にコメントしない場合は、これが役立つことを願っています

于 2013-02-01T09:33:11.383 に答える
1

グローバルなライブラリでこれらのオブジェクトとメソッドを使用し、そのライブラリをAndroidプロジェクトに追加する別の最良の方法があります。そのライブラリで独自のクラスを宣言できます。もう1つの機能は、jarファイルにクラスを配置できるjarファイルです。あなたはそれを再利用することができます....このリンクはあなたに役立つかもしれません..............あなたが書くすべてのプログラムで使用されるAndroid開発のためのあなた自身のライブラリを作成する方法は?

于 2013-02-11T10:33:07.450 に答える
0

比較的小さなデータを共有する必要がある場合は、実装が簡単な 共有設定を使用してください。

public static void addData(Context context, String data) {
    SharedPreferences sharedPref = context.getSharedPreferences(app_name, 0);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString("Name", data);
    editor.commit();
    }

public static String getData(Context context) {
    SharedPreferences sharedPref = context.getSharedPreferences(app_name, 0);
    String fontSize = sharedPref.getString("Name", "default");
    return fontSize;
    }

または、かなり大きなデータがある場合は、コンテンツ プロバイダーを使用することもできます。

于 2013-02-06T11:09:51.060 に答える
-1

残念ながら、Parcelable でないオブジェクトをアプリケーション間でそのまま共有することはできません。

ただし、サービスと AIDL の助けを借りてこれを行うことができます: http://developer.android.com/guide/components/aidl.html

于 2013-02-01T09:43:44.160 に答える