Android: Что лучше - несколько операций или переключающихся представлений вручную?

Я разработал некоторые приложения для Android, и это подвергает сомнению, всегда остается:

Как я должен структурировать свой UI? Я должен запустить действие после действия и оставить телефон для создания "задней" кнопки, или я должен выбрать более оптимизированный, но более сложный для реализации, путь с переключением вручную Представлений и затем вручную выполнения функциональности кнопки "Back"?

То, что Вы думаете (или знаете), является лучшей практикой?

115
задан Danail 15 January 2010 в 14:33
поделиться

4 ответа

Вы можете установить службу, добавив этот код (в файл программы, Program.cs), чтобы установить себя при запуске из командной строки, используя указанные параметры:

/// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main(string[] args)
        {
            if (System.Environment.UserInteractive)
            {

                if (args.Length > 0)
                {
                    switch (args[0])
                    {
                        case "-install":
                            {
                                ManagedInstallerClass.InstallHelper(new string[] { Assembly.GetExecutingAssembly().Location });
                                break;
                            }
                        case "-uninstall":
                            {
                                ManagedInstallerClass.InstallHelper(new string[] { "/u", Assembly.GetExecutingAssembly().Location });
                                break;
                            }
                    }
                }
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[] { new MyService() };
                ServiceBase.Run(ServicesToRun);
            }
        }
-121--1145148-

Это происходит, например, при попытке получить доступ к строковой переменной в качестве хэша по ошибке.

s = "a string"
s["position"] = "an other string"

IndexError: string not matched
    from (irb):5:in `[]='
    from (irb):5

Дополнительная информация

-121--1604696-

Я бы сказал, что несколько действий почти всегда имеет больше смысла. Я просто не думаю, что Android предназначен для постоянного переключения собственных взглядов - вы так много упускаете. Вы должны реализовать Back самостоятельно, вы не получаете никаких переходов между действиями, вы должны реализовать много внутренней логики, чтобы возобновить приложение в правильном состоянии. Если вы не разделяете приложение на Действия, в дальнейшем изменить поток работы приложения будет намного сложнее. Это также приводит к одной мегаактивности, которая может быть намного труднее для обработки, чем много небольших частей кода.

Мне трудно представить, что скорость действительно проблема; если это так, то что-то не так с тем, как вы инициализируете каждое действие. Например, я пытался передавать сериализуемые объекты между действиями, и это оказалось невероятно медленным; Когда я перешел на более быстрый метод прохождения объектов, скорость запуска Activities значительно возросла.

Кроме того, я думаю, что это говорит о том, что в руководящих принципах Android для разработки действий и задач вообще не упоминается переключение представлений; он центрируется вокруг конструкции Activity-as-View.

98
ответ дан 24 November 2019 в 02:27
поделиться

Также имейте в виду, что реализация вашего приложения с несколькими деятельностью даст пользователю более последовательным опытом с платформой в целом. Часть опыта будет сформирована с помощью встроенных приложений Google, поэтому пользователи, вероятно, будут иметь более простые время, используя ваше приложение, если оно ведет себя аналогично те, которые уже установлены на телефоне.

11
ответ дан 24 November 2019 в 02:27
поделиться

Все зависит от применения, что вы пытаетесь добиться лучшей производительности, более гладкий интерфейс. ИМХО, я предпочитаю второй подход контролирования действий вручную даже, что это сложнее, как вы уже говорили. Это подход, который я использовал в моем проекте вкладок Android, также вы можете взглянуть на класс под названием ActivityGroup (не уверен, что пакет) позволяет вам иметь несколько действий, которые вы можете переключиться между этим классом Это то, что ваша деятельность не выгружена при переключении, но плохая вещь - это дольше, чтобы загрузить ваше основное приложение.

Просто мое мнение.

3
ответ дан 24 November 2019 в 02:27
поделиться

Проблема с коммутационными взглядами, что я наткнулся, также вызван сборщиком мусора. Кажется, что GC срабатывает, когда вы оставляете активность и не вид. Итак, например, изменение вкладок с довольно сложным видом на дети, например, почти неизбежно приведет к стеке исключения из переполнения.

1
ответ дан 24 November 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: