У меня есть виджет, который содержит 4 кнопки для отображения 4 котировок акций, каждая из которых будет запускать один и тот же вид деятельности Quote.class для показа информации об акциях. В onUpdate () он устанавливает pendingIntent с дополнениями с символом акции. После того, как я нажимаю кнопку A, она переходит к операции «Цитировать», которая показывает акцию А. Затем я нажимаю кнопку «НАЗАД» на главном экране, операция «Цитировать» вызывает функцию onDestroy (), и когда я нажимаю кнопку «В», акция В будет отображаться правильно. Однако, когда я нажимаю кнопку 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 в цитате и получать новые дополнения, когда нажимаю кнопку B? Любая помощь приветствуется. Спасибо