我有一个在清单中定义的活动:
android:launchMode="singleInstance"
现在我想从一个不知道它存在的不同活动(不引用现有实例)转移到该活动,同时传入一个变量。我曾经这样做(在我将其定义为singleInstance之前):
Intent intent = new Intent(this, receivingactivity.class);
intent.putExtra("somekey", somevalue);
startActivity(intent);
但现在不再适用了。我在接收活动中输入以下行:onresume:
String somevalue = getIntent().getStringExtra("somekey");
并返回null。如何将值传递给现有的接收活动(该活动始终处于活动状态且永远不会达到ondestroy但最大值会延迟到暂停)?
答案 0 :(得分:10)
如果活动的启动模式是singleInstance并且未被销毁,则需要使用<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="284dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="40dp"
android:ems="10"
android:singleLine="true"
android:maxLength="10">
<requestFocus />
</EditText>
<Button
android:id="@+id/btnSelectPhoto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Select Photo" />
<ImageView
android:id="@+id/viewImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/camera"/>
</LinearLayout>
来检索传递给它的意图。
不要与onNewIntent(Intent intent)
混淆,因为这个检索了活动创建时传递的意图。