ine*_*ble 4 android android-intent
我正在尝试使用意图的额外内容在我的应用程序内部传递一些数据.
我将数据附加到意图,如下所示:
Intent i = new Intent(ActivityFrom.this, ActivityTo.class);
i.putExtra(CONST_KEY, true);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
同
public static final String CONST_KEY = "MyBooleanValue";
Run Code Online (Sandbox Code Playgroud)
我试图在启动的ActivityTo的onCreate方法中检索数据,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extra = getIntent().getExtras();
if ( extra != null ) {
boolean b = extra.getBoolean(ActivityFrom.CONST_KEY);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我从来没有碰到过if-block,因为Bundle它始终是null.
为什么我的演员会丢失?我需要更改什么来检索我对意图的附加内容?
编辑
onCreate方法声明这是ActivityTo清单中的声明:
<activity
android:name=".ActivityTo"
android:launchMode="singleTask"
android:screenOrientation="portrait">
</activity>
Run Code Online (Sandbox Code Playgroud)问题是android:launchMode="singleTask"接收任务的属性.设置此项后,所有以此ActivityTo活动为目标的意图都将由同一对象接收.如果已创建活动,则通过活动的onNewIntent(Intent)方法发送意图.像这样覆盖它:
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以获得新的意图getIntent().
| 归档时间: |
|
| 查看次数: |
3132 次 |
| 最近记录: |