Android - 将数据传递给singleInstance活动

时间:2015-05-07 14:22:42

标签: android android-activity instance

我有一个在清单中定义的活动:

 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但最大值会延迟到暂停)?

1 个答案:

答案 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)混淆,因为这个检索了活动创建时传递的意图。