0

BroadcastReceiver で新しいアクティビティを作成していて、ビューに動的テキストを表示する方法を見つけようとしています。

public class CallReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
    if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {
      String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

      SystemClock.sleep(1);
      Intent myIntent = new Intent(context, CallerIdActivity.class);
      myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_USER_ACTION);
      context.startActivity(myIntent);
  }
}

開始したばかりのアクティビティによって表示されるビューに、どのように incomingNumber を渡すことができますか?

4

1 に答える 1

1

最初に番号を取得したのと同じ方法で、Intent にエクストラを追加します。

  Intent intent = new Intent(context, CallerIdActivity.class);
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_USER_ACTION);
  intent.putExtra("IncomingNumber", incomingNumber);
  context.startActivity(intent);

intent(後で問題を引き起こす可能性がある名前の 2 つのインテントがあるため、このインテントの名前を変更することをお勧めします。)

そして、この余分なものをチェックしてくださいonCreate()

public void onCreate(Bundle savedInstanceState) {
    ...
    String string = getIntent().getStringExtra("IncomingNumber");
    if(string != null) {
        // Do something
    }
}
于 2012-09-17T22:57:27.813 に答える