0

サービス A は、一部の情報を文字列配列「information[]」に保存します。サービス A が完了すると、サービス B が開始され、サービス B は文字列配列を受け取るはずです。これはどのように行うことができますか?バンドル内で送信しようとしましたが、アクティビティ間で通常行うようにデータを取得できないようです。

編集:

これが私のコードです:

サービス A、onDestroy

Intent is2 = new Intent(this, GatherInformationService.class);
is2.putExtra("information", info);
startService(is2);

サービス B onCreate

Bundle b = new Bundle();
coords = b.getStringArray("information");
4

3 に答える 3

2

Bundle作成した新しいオブジェクトに文字列配列がどのように存在するかわかりません。onStartCommand次のように、ロジックをメソッドに入れる必要があるようです。

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    String[] info = intent.getStringArrayExtra("information");
}

詳細については、開発者ガイドのセクションを参照してください。

于 2012-07-14T18:51:14.603 に答える
1

メソッドを使用できますintent.putExtra

サービス中 A:

Intent intent = new Intent( this, YourTargetService.class );
intent.putExtra("YourExtraName", information );

サービス B onCreate:

String[] received = getIntnet().getStringArrayExtra("YourExtraName");

それは仕事をするべきです

于 2012-07-14T17:54:37.257 に答える
0

OOP のトリックです。配列を静的にすることができ、onCreate メソッドでその配列にアクセスするか、ClassName.array = Service1.array のような別のサービスで必要な場所にアクセスできます。

ありがとう

于 2012-07-14T17:47:07.527 に答える