如何在不启动Activity的情况下将值传递给另一个选项卡

cap*_*oid 0 tabs android android-activity

我有2个选项卡 - Tab1和Tab2,Tab1Activity和Tab2Activity.
我想将值从Tab1Actvity传递给Tab2Activity但不想启动Tab2Activity.当我尝试下面的代码时,它给出null值:

在Tab1Activity中

getParent().getIntent().putExtra("key", "value");
Run Code Online (Sandbox Code Playgroud)

在Tab2Activity中

String valueString=getParent().getIntent().getStringExtra("key");
System.out.println("Testing.....: "+valueString);
Run Code Online (Sandbox Code Playgroud)

tim*_*ser 5

我真的不鼓励你通过扩展Application类来使用全局变量.如果您的应用程序进入后台(例如,通过电话),Android系统可能会决定终止您的应用程序.调用完成后,您的应用程序和活动堆栈将恢复,但您的活动状态将丢失.

我宁愿建议您使用广播将数据发送到另一个活动.

在你的Tab1Activity中:

Intent dataIntent = new Intent();
dataIntent.setAction("com.your.app.DATA_BROADCAST");
dataIntent.putExtra("tag", "your data");
sendBroadcast(dataIntent);
Run Code Online (Sandbox Code Playgroud)

Tab2Activity:

BroadcastReceiver receiver = new BroadcastReceiver() {    
  @Override
  public void onReceive(Context context, Intent intent) {    
    String yourData = intent.getStringExtra("tag");
  }
};

IntentFilter filter = new IntentFilter();
filter.addAction("com.your.app.DATA_BROADCAST");
registerReceiver(receiver, filter);
Run Code Online (Sandbox Code Playgroud)