У меня есть виджет, который содержит 4 кнопки для отображения 4 цен на акции, каждая из которых запускает одно и то же действие Quote.class для отображения сведений об акциях. В onUpdate() он установит pendingIntent с дополнительными функциями с символом акции. После того, как я нажму кнопку A, он перейдет к действию Quote, которое показывает акции A. Затем я нажму кнопку BACK на домашний экран, действие Quote вызовет onDestroy(), и когда я нажму кнопку B, акции B отобразятся правильно. Однако, когда я нажимаю кнопку HOME после того, как она показывает акцию A, активность Quote вызывает только onStop без вызова onDestroy(), затем, когда я нажимаю кнопку B, она вызывает onStart() и показывает тот же экземпляр, что показывает акцию A.
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.etappwidget);
setQuoteIntent(context, views, R.id.view1, "BAC", 1);
setQuoteIntent(context, views, R.id.view2, "C", 2);
setQuoteIntent(context, views, R.id.view3, "GOOG", 3);
setQuoteIntent(context, views, R.id.view4, "AAPL", 4);
private static void setQuoteIntent(Context context, RemoteViews views, int viewId, String symbol, int requestCode) {
Intent i = new Intent(context, Quote.class);
i.putExtra("SYMBOL", symbol);
i.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
PendingIntent pi = PendingIntent.getActivity(context, requestCode, i, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(viewId, pi);
}
Первоначально я думал, что добавление флага в Intent должно решить эту проблему. Но я пробовал i.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK или FLAG_ACTIVITY_NEW_TASK или FLAG_ACTIVITY_NO_HISTORY), ни один из них не имеет никакого значения.
Так есть ли способы заставить его работать? Как я могу удалить стек истории с кнопки HOME? Как я могу вызывать onCreate в Quote и получать новые дополнения, когда нажимаю кнопку B? Любая помощь приветствуется. Спасибо