我有一个活动'A'扩展了调用服务的mapActivity,还有一个扩展服务的服务'B'。我在服务“B”中得到纬度和经度。现在我需要调用 Activity 'A' 中的方法并传递纬度和经度。在那种方法中,我有代码来显示位置。提前致谢..
8 回答
请参阅http://developer.android.com/reference/android/app/Activity.html#StartingActivities
- A 活动应该使用
startActivityForResult()
方法启动 B 活动 setResult()
B活动应该在做之前设置要返回的数据(纬度和经度)finish()
- A 活动必须重写
onActivityResult()
以从 B 检索数据
使用意图是最简单也是最好的方法。在活动 A 中有这个代码来创建意图:
Intent intent=new intent(this,B.class);
/处理完需要发送给活动B的数据后/
/如果要传递数据/
intent.putExtra("Data", data);
startActivity(i);
在活动 B 中,将其接收为:
Intent intent = getIntent();
String text = intent.getStringExtra("Data");
Intents 用于在活动之间传递短消息。使用 Intent 并添加额外内容以从服务启动活动您还需要添加额外的标志以从服务启动活动。
这是参考
http://developer.android.com/reference/android/content/Intent.html
创建该类对象并调用特定方法
您正在使用一个活动和一个服务,而不是两个活动,并且您希望活动和服务之间进行交互。为此,请使用 BoundService。请参阅以下链接以获取更多参考:
http://developer.android.com/guide/components/bound-services.html
或者,您可以在 Activity 中定义 A messenger,并可以将消息从服务发送到活动。
使用意图呼叫另一个
Intent i= new Intent (this,B.class);
startActivity(i);
这是一个简单的调用方式
您不应创建活动类的实例。这是错误的。活动有 ui 和生命周期,活动由 startActivity(intent) 启动
您可以使用 startActivityForResult 或者您可以使用意图将值从一个活动传递到另一个活动并执行所需的操作。但这取决于您打算在该方法中做什么。
我可以知道确切的要求,为什么你需要调用另一个活动方法?