Android:获取意图并将其重新路由到另一个类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android:获取意图并将其重新路由到另一个类相关的知识,希望对你有一定的参考价值。

我的问题很简单:如果存在一个intent对象,我只想使用它并添加putExtra()然后再返回startActivity。但是,我不知道该怎么做。任何帮助表示赞赏。

Intent intent;
if(getIntent() != null) {
    intent = getIntent();
    //reroute to BarActivity class
} else {//this part is fine
    intent = new Intent(FooActivity.this, BarActivity.class);
}
intent.putExtra("cardHP", "100");
startActivity(intent);
答案

getIntent()是更大链的一部分。它将返回已发送的ENTIRE意图。

您可以使用getIntent()。getExtras()。getString(“TheOriginatingClass”);来检索调用类。

编辑:确定上次我编辑这个...我太累了,需要在这个大声笑之后再去睡觉...在发送的意图中,有原始类和被调用的类(Class1和Class2) )。当您使用Class1发送的intent时,您实际上尝试使用调用Class2的相同意图调用Class1。你需要创建一个新的意图,如果你需要原始类(Class1),你可以通过我上面描述的链获得它。

注意:我忘了添加你需要将classname作为一个字符串添加到从Class1调用的intent中。 AFAIK没有直接的方法来找出调用类是什么。我可能错了。

-要么-

如果你使用的是int(就像在你的例子中那样)你可以使用startActivityForResult(Intent,int)http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)

另一答案

如果我们使用startActivityForResult方法,并在onActivityResult方法上检测返回的结果,那么这是有效的。

以上是关于Android:获取意图并将其重新路由到另一个类的主要内容,如果未能解决你的问题,请参考以下文章

从通知意图启动活动时重新创建 Android ViewModel

当通过意图从相机应用程序返回时,Android 活动被破坏

Android CardView 实现

Android相机意图不应允许将图像保存到图库并将其存储在指定路径中

android 从扩展 AsyncTask 创建一个对象并将其发送到另一个活动

如何从 Android 上的意图中获取额外数据?