gpt4 book ai didi

android - 如何根据调用Intent恢复同一个Activity中的内容?

转载 作者:行者123 更新时间:2023-11-30 04:52:27 24 4
gpt4 key购买 nike

这是我的场景:我通过 AppWidget 启动 Activity A。 AppWidget 显示(尤其是)3 个按钮。他们每个人都有自己的 Intent 。它们旨在通过名为 AppWidgetReceiver 的类向 Activity 提供信息。在后者中,我创建了一个这样的 Intent :

Intent i = new Intent(context, CreateNoteActivity.class);  
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra(AppWidget.WIDGET_ITS_TRIGGER_ID, trigger_id);
i.putExtra(AppWidget.WIDGET_TITLE, title);
i.putExtra(AppWidget.WIDGET_DESCRIPTION, descr);
context.startActivity(i);

这将启动 Activity A。根据 trigger_idtitledescr,我为用户创建了某种信息菜单:

coreQuestionTitle   = getIntent().getStringExtra(AppWidget.WIDGET_TITLE);  
coreQuestionDescr = getIntent().getStringExtra(AppWidget.WIDGET_DESCRIPTION);
coreQuestionId = getIntent().getIntExtra(AppWidget.WIDGET_ITS_TRIGGER_ID, -1);
TextView tvCoreQuestion = (TextView) findViewById(R.id.create_note_core_question_text);
tvCoreQuestion.setText(coreQuestionTitle);

一切正常。当我不通过 this.finish()“关闭”Activity 时,问题就出现了,例如按下主页或后退按钮。当我现在点击 AppWidget 上的一个 OTHER 按钮时,之前打开的 Activity 被恢复而不是重新启动。 onCreate() 未被调用。相反,它直接跳转到 onStart()。我知道这是 Activity 生命周期的目的,因为任务仍然存在。
不幸的是,我确实需要能够检索 Intent 中指定的参数来设置所需的信息。此外,我希望能够恢复 3 个不同任务中的任何一个的状态。谁能帮我解决这个问题?

顺便说一句:我避免通过使用 android:configChanges="keyboardHidden|orientation"和 onConfigurationChanged() 传递 onCreate()。 Manifest.xml 中的 Activity 声明如下所示:

<activity android:name=".notes.CreateNoteActivity"  
android:configChanges="keyboardHidden|orientation"
android:label="@string/create_note"
android:launchMode="singleTask"
android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter>
<category android:name="android.intent.category.CATEGORY_HOME" />
</intent-filter>
</activity>

提前致谢,
史蒂夫

最佳答案

如何在您的onStop()onPause() 方法上专门终止 Activity (通过调用this.finish())?这可能会产生额外的开销,因为用户会点击您的小部件的不同按钮,但这是您可以在每次点击时强制调用 onCreate() 的唯一方法。

关于android - 如何根据调用Intent恢复同一个Activity中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2858489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com