Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果某项活动';解决办法是什么_Java_Android_Android Intent - Fatal编程技术网

Java 如果某项活动';解决办法是什么

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

所以我有两个活动,一个主要的,然后是次要的,我们将它们称为活动a(主要)和活动B(第二)。 因此,我的活动_A获取一些数据,然后用以下代码将其发送给活动_B:

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上。解决方案应该是运行服务-它可以保持运行,并在满足某些条件时更新或重新启动活动。