Сразу скажу, что в разработке для Android и в Java (хотя пишу на Kotlin, но в данном случае это не важно) я новичок.
Пишу приложение, которому нужно работать в фоне. Чтобы понизить вероятность убиения процесса пока оно свернуто, запускаю сервис и выключаю его при убирании приложения из списка недавних (с помощью вызова stopSelf в onTaskRemoved). Я хочу, чтобы во время его работы показывалось постоянное уведомление. Проблема в том, что если показывать его в onStartCommand и убирать в onDestroy, то при убивании процесса оно остается висеть, т.к. onDestroy в этом случае не вызывается. Это можно решить с помощью startForeground, но в документации сказано, что его следует использовать только если остановка сервиса помешает пользователю (например, если он играет музыку), но это не мой случай. Что посоветуете?
#include <QApplication>
#include <QDebug>
#include <QDialog>
#include <QPushButton>
#include <QTreeWidget>
#include <QVBoxLayout>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QDialog dialog;
QVBoxLayout layout(&dialog);
QTreeWidget treeWidget;
treeWidget.insertTopLevelItem(0, new QTreeWidgetItem(&treeWidget));
QObject::connect(&treeWidget, &QTreeWidget::activated, [&treeWidget]() {
auto secondDialog = new QDialog(&treeWidget);
auto layout = new QVBoxLayout(secondDialog);
auto button = new QPushButton();
QObject::connect(button, &QPushButton::clicked, []() {
qDebug() << "button clicked";
});
layout->addWidget(button);
secondDialog->show();
});
layout.addWidget(&treeWidget);
dialog.show();
return app.exec();
}
При активации элемента внутри QTreeWidget открывается дилог с кнопкой. Проблема в том, что если это делать нажатием Enter, то нажимается кнопка внутри диалога (и если на нее законнектить принятие диалога, то он сразу же закроется). Почему это происходит, и как от этого избавиться?
Внутри тега [code] в сообщениях для латинских символов используется шрифт Droid Sans Mono, а для кириллицы - системный Monospace. Firefox 47.0.1. В хромиуме то же самое.
Заметил, что в арче локаль устанавливается скриптом /etc/profile/locale.sh, который к systemd никакого отношения не имеет и сам берет настройки из /etc/locale.conf. Но при этом systemd все же зачем-то парсит locale.conf. Зачем? И почему он не ставит локаль самостоятельно?
Суть проблемы: при появлении новой версии пакета в новом слоте/сабслоте (например, dev-lang/vala:0.30 или sys-devel/llvm:0/3.5) он не появляется в списке при обновлении мира. Ручное обновление проходит нормально.
1. Это нормальное поведение?
2. Если да, то почему?
3. Как можно автоматически выявить и обновить такие пакеты?
Ищу смартфон на андроиде со стабильностью, плавностью работы и общей оптимизацией прошивки на уровне нексусов. (до этого пользовался xperia 2012-го года, все тормозило и глючило так, что врагу не пожелаешь).
Желательно, чтобы в системе было минимум сторонних модификаций и прочих тачвизов. Наличие cyanogenmod'а по вышеописанным характеристикам на уровне официальной прошивки также приветствуется.
Собственно выходит 15 ноября этого года. Обещают поддержку линукса и мака через некоторое время после релиза под виндовс. Доступен предзаказ.
Кто не в теме - игры серии X это аркадные космосимы вроде Фрилансера, но с упором на экономику и строительство станций. В новой игре можно ходить по станциям, но корабль в собственности только один.