(Изменить здесь - Оригинальный пост ниже)
Я сузил исходную проблему до следующего: ключ home просто не ведет себя одинаково для обычной активности и активности конфигурации appwidget.Я сделал тест со следующим минимальным действием:
public class TestActivity extends Activity {
Logger logger = Logger.getLogger("logger");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onUserLeaveHint() {
logger.info("userleave");
super.onUserLeaveHint();
}
}
Создание простого приложения с этим простым действием работает как задумано.При создании простейшего виджета без какой-либо функциональности, используя это действие в качестве действия по настройке виджета приложения, LogCat не получает нашего logger.info ().
Есть какие-нибудь подсказки?
BestС уважением
(оригинальный пост здесь)
У меня есть рабочий виджет, состоящий из кнопок запуска действий.Одним из них является действие по настройке, и его можно было бы удвоить как «Активность по настройке виджета приложения» - т.е. вызывать его, когда пользователь встраивает виджет на свой домашний экран.
Следуя руководству разработчика Android,Я добавил этот код в действие настроек:
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
int appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
RemoteViews views = new RemoteViews(this.getPackageName(), R.layout.widgetlayout);
appWidgetManager.updateAppWidget(appWidgetId, views);
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_OK, resultValue);
finish();
}
}
Добавлено в onCreate (), действие не появляется - вполне логично, так как оно вызывает finish (), а все остальное работает как задумано.
Что я хочу сделать, так это добавить его в onPause (), потому что приятно выйти из операции конфигурации с помощью кнопки «назад» или «домой», поскольку отсутствие кнопки «сохранить и выйти» подразумевает автоматическое сохранение.Добавлено в onPause (), виджет не встраивается в домашний экран .LogCat не показывает ничего более печального, чем информация.
РЕДАКТИРОВАТЬ: Сузили до проблемы, связанной с onPause () и аппаратной кнопкой домой.Аппаратная кнопка «назад» позволяет включить виджет на главный экран.
Если у кого-нибудь есть подсказка, я был бы очень рад, заранее спасибо.