Java 如果某项活动';解决办法是什么
所以我有两个活动,一个主要的,然后是次要的,我们将它们称为活动a(主要)和活动B(第二)。 因此,我的活动_A获取一些数据,然后用以下代码将其发送给活动_B:Java 如果某项活动';解决办法是什么,java,android,android-intent,Java,Android,Android Intent,所以我有两个活动,一个主要的,然后是次要的,我们将它们称为活动a(主要)和活动B(第二)。 因此,我的活动_A获取一些数据,然后用以下代码将其发送给活动_B: Intent i = new Intent(this,activity_B.class); i.putExtra("Charge_Batterie", bat); startActivity(i); String bat = getIntent().getStringExtra("Charge_Batte
Intent i = new Intent(this,activity_B.class);
i.putExtra("Charge_Batterie", bat);
startActivity(i);
String bat = getIntent().getStringExtra("Charge_Batterie");
活动_B使用以下代码正确接收:
Intent i = new Intent(this,activity_B.class);
i.putExtra("Charge_Batterie", bat);
startActivity(i);
String bat = getIntent().getStringExtra("Charge_Batterie");
我的问题是我的活动A正在重新定义它的值“bat”,所以当我有意发送它时,它不会在活动B中重新定义。
所以我想知道,我的活动是睡眠吗?如果是,我如何让它保持活力?我也在做同样的事情,而且它工作了很长一段时间——活动a运行计时器,并启动带有额外功能的活动B。 当我想用“新附加”刷新活动B时,我会这样做:
// check if activity B is created and running:
if (intent == null) {
System.out.println("Creating Activity - Intent is null");
intent = new Intent(context, ActivityB.class);
intent.putExtras(ImagedownloaderActivityBundle);
startActivity(intent);
}else {
System.out.println("Reloading Activity - Intent exists");
finish();
intent = new Intent(context, ActivityB.class);
intent.removeExtra("playlistsList");
intent.putExtras(ImagedownloaderActivityBundle);
startActivity(intent);
}
据我所知,这并不是实现后台任务的最佳方式——它应该在服务上运行,可能在需要刷新时也会这样做。意图保留了数据。一旦设置,它将保持不变,直到再次显式设置。如果你想扫描电池,最好使用服务。但是,如果它只是活动a到B的一个值,那么为变量赋值应该还有另一个问题。在我的活动B中,我将使用来自android.support.v4.widget.swiperFreshLayout的onRefresh()方法。因此,如果我在onRefresh中调用我的getIntent,它将覆盖它,对吗?不,Intent是一次性容器。因此,唯一的方法是“服务”。我会检查它是如何工作的,然后试着去做。谢谢大家的回答。这看起来很酷,但在我的例子中,活动A和活动B都显示了一个视图,因此使用这段代码,我的应用程序被困在活动B上。解决方案应该是运行服务-它可以保持运行,并在满足某些条件时更新或重新启动活动。