Почему запуск действия из виджета вызывает также и мое основное действие?

Когда я начинаю активность из виджета, я хочу, чтобы кнопка «Назад» переходила на главный экран, но вместо этого она переходит к основному действию приложения. Поигравшись, я обнаружил, что если я каким-то образом закрою основное действие приложения, этой проблемы не возникнет. Странно.

Я нашел решение здесь , в котором говорилось, что нужно вызывать finish (); в моей основной деятельности onPause (). Очевидно, это неправильное решение, например, изменение ориентации экрана вызывает onPause (), поэтому активность будет прекращаться всякий раз, когда телефон поворачивается.

Вот как я начинаю свою деятельность:

@Override
public void onReceive(Context context, Intent intent) {
    [...]
        //new Emergency().emDialog(context).show();
        Intent myIntent = new Intent(context, EmergencyActivity.class);

        // FLAG_ACTIVITY_NEW_TASK is needed because we're not in an activity
        // already, without it we crash.
        myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(myIntent);

Вы можете увидеть остальную часть кода на http://code.google.com/p/emergencybutton/source/browse

edit: Я пробовал запустить действие по-другому, но оно все равно работает некорректно: BOOL БИТ (1) ENUM (0,1) CHAR (0) NULL Следует отметить все основные механизмы баз данных, поддерживаемые PHP, но ...

Я видел несколько возможных подходов (в некоторых механизмах баз данных некоторые из них являются синонимами):

  1. TINYINT (1)
  2. BOOL
  3. BIT (1)
  4. ENUM (0,1)
  5. CHAR (0) NULL

Следует отметить все основные движки баз данных, поддерживаемые PHP, но для справки это будет даже лучше, если будут отмечены и другие движки.

Я прошу проект, который лучше всего оптимизирован для чтения . например, ВЫБОР с полем флага в условии WHERE или GROUP BY по флагу. Производительность гораздо важнее, чем пространство для хранения (кроме случаев, когда размер влияет на производительность).

И еще несколько деталей:

При создании таблицы я не могу знать, будет ли она разреженной (если большинство флагов включены или выключены), но я могу ИЗМЕНИТЬ таблицы позже, поэтому, если есть что-то, что я могу оптимизировать, если я знаю это, это следует отметить.

Также, если это имеет значение, если есть только один флаг (или несколько) на строку, по сравнению с множеством (или большим количеством) флагов, это следует отметить.

Кстати, я где-то в SO читал следующее:

Использование логического значения может сделать то же самое, что и используя tinyint, однако он имеет преимущество семантической передачи каковы ваши намерения, и это

Что ж, в моем случае это ничего не стоит, потому что каждая таблица представлена ​​классом в моем приложении, и все явно определено в классе и хорошо документировано.

6
задан xun 30 April 2012 в 15:39
поделиться