fillinintent.putextra (...) не получен в MainActivity при нажатии на элемент AppWidget
Я строю Adploid AppWidget, используя remoteviewService, чтобы показать прокрученный список пользовательских предметов (дни с уроками). Я хочу обнаружить, какой день был нажат, и отправить строку clicked_day в мою магистральную.Intent fillInIntent = new Intent();
fillInIntent.putExtra("clicked_day", item.originalDate); // e.g. "2025-04-29"
headerView.setOnClickFillInIntent(R.id.fill_in_click_catcher, fillInIntent);
< /code>
AppwidgetProvider.onupdate(...):
Intent templateIntent = new Intent(context, MainActivity.class);templateIntent.setAction(Intent.ACTION_VIEW);
PendingIntent pendingIntentTemplate = PendingIntent.getActivity(
context,
0,
templateIntent,
PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
views.setPendingIntentTemplate(R.id.widget_list, pendingIntentTemplate);
< /code>
mainActivity: < /h4>
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handleWidgetIntent(getIntent());
}
private void handleWidgetIntent(Intent intent) {
if (intent != null) {
Bundle extras = intent.getExtras();
if (extras != null) {
String date = extras.getString("clicked_day");
if (date != null) {
Log.d("MAIN", "
} else {
Log.d("MAIN", "
}
} else {
Log.d("MAIN", "
}
}
}
< /code>
, когда я нажимаю на элемент в виджете: < /h4>
[*] MainActivity правильно запущен. /> < /li>
Это означает, что значение clicked_day не достигает действия. /> Fillinintent правильно устанавливается с помощью putextra (...).
[*] Я не устанавливаю .setaction (...) или .setcomponent (...) на Fillinintent. /> < /li>
Работает шаблон шаблона в Пенсингвинг - активность открывается. < /p>
< /li>
< /ul>
Что я попробовал < /h4>
Обертывание строки в пучок и проходя, что → Нет успеха. /> Использование SetAction (...) → Нет успеха.
Использование URI с пользовательской схемой (AppName: // day_2025-04-28) → URI работает, но я хочу пройти uppas. → Без эффекта. < /P>
< /li>
Подтверждено, что виджет использует SetPendingIntentTemplate (...) правильно. finleinint>
Подробнее здесь: https://stackoverflow.com/questions/795 ... am-problem
Мобильная версия