在活动之间分享位置信息的最佳做法是什么? 例如:
每个活动都会通过发送当前位置来调用特定的Web服务方法。
我问这个因为我很困惑:
谢谢
答案 0 :(得分:3)
如果您希望在导航活动时保持位置不变,请将其传递给起始意图,并让每个活动都保留数据的副本。
另一方面,如果您希望所有3位置都具有动态位置,我会考虑制作服务以收听位置服务。然后,您的活动可以绑定到该服务并接收更新。这可以确保您不会遇到多个侦听器,并且意外地使位置侦听器保持活动时间超过预期。它还为您提供了一个单独的位置来维护任何必要的设置(即用户选择退出,频率和精度等)。
答案 1 :(得分:0)
将信息从一个活动传递到另一个活动非常容易。当您创建用于启动其他活动的intent时,您可以将其他信息附加到新活动启动时可以访问的该intent。
以下是一个例子:
要将信息从一个活动传递到另一个活动,您可以执行以下操作:
Intent i = new Intent(this, OtherActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("variableName", "variable value");
然后在另一个活动中,您将执行以下操作
Bundle extras = this.getIntent().getExtras();
String var = null;
if (extras != null) {
var = extras.getString("variableName");
}
你可以传递的不仅仅是字符串,整数等......你甚至可以传递对象。作为Parcelable类的子对象也可以传递。要将parcelable简单地添加到intent:
i.putExtra("variableName", instanceOfMyClass);
在新的活动中,您只需致电:
MyClass obj = (MyClass) extras.getParcelableExtra("parcelableName");