2016-06-13 16 views
0

私はインテントを使用して、サービスからアクティビティに通信します。エラーがある場合はintent.putExtra(Tag, message);を使用します。活動の 私はバンドルの内容を読む

  String message_error_1 = intent.getStringExtra("Message_Error_1"); 
      String message_error_2 = intent.getStringExtra("Message_Error_2"); 
      String message_error_3 = intent.getStringExtra("Message_Error_3"); 

を次のようにこれらのエクストラを得ることができますが、一つだけではデータを持っています。私は今すべてのエントリのためのIfステートメントを作ることができますが、私はそこにどのエントリがデータを持っているかを理解する方法があると思います。方法はありますか?

+0

制限付きサービスを使用します。 – CodeCody

+0

私は前に試みましたが、サービスはアクティビティなしで独自に実行しています。アクティビティが終了すると、再び実行中のサービスをバインドすることができませんでした – user1390816

答えて

1

エラーが1つしかない場合は、ERROR_TYPE intを1つ追加し、ERROR_MESSAGE文字列を別のものとして渡すことを検討します。したがって、多くのif文を書く必要はありません。例:

int type = intent.getIntExtra("error_type"); // 1, 2, or 3 
String message = intent.getStringExtra("error_message"); 

質問に答えるには、使用するエラーメッセージキーを示す余分な部分にサービスを入れることができます。例:

// In Service 
intent.putExtra("error_key", "Message_Error_1"); // error 1 has the message! 

// In Activity 
String key = intent.getStringExtra("error_key"); 
String actualErrorMessage = intent.getStringExtra(key); 
+0

ああ、それは非常に良いアイデアです!ありがとう! – user1390816

関連する問題