0

我正在广播接收器中创建一个新活动,并试图弄清楚如何在视图中显示动态文本。

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 的名称,因为您现在有两个已命名的 Intent intent,这可能会在以后造成麻烦。)

并检查这个额外的onCreate()

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