вот мой сценарий: я запускаю действие А через AppWidget.AppWidget отображает (среди прочего) 3 кнопки.У каждого из них есть свое намерение.Они предназначены для предоставления информации в Activity через класс AppWidgetReceiver.В последнем случае я создаю намерение, подобное этому:
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);
Это запускает действие А. На основе trigger_id
, title
и descr
я создаю какое-то информационное меню для пользователя:
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()
, например, нажата кнопка возврата домой или назад.Когда я теперь нажимаю на ДРУГОЙ кнопке в AppWidget, ранее открытая активность восстанавливается, а не перезапускается.onCreate()
не называется.Вместо этого он прыгает прямо в onStart()
.Я знаю, что это предусмотрено жизненным циклом Activity, поскольку задача еще жива.
К сожалению, мне действительно нужно иметь возможность получить параметры, указанные в намерении, для установки желаемой информации.Кроме того, я хотел бы иметь возможность восстановить состояние ЛЮБОЙ из 3 различных задач.Кто-нибудь может мне помочь в этом?
Кстати: я избегаю пропустить onCreate()
, используя android: configChanges = "keyboardHidden | ориентация" и onConfigurationChanged()
.Объявление действия в файле Manifest.xml выглядит следующим образом:
<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>
Заранее спасибо,
Steff