где создается класс Activity в android? [Дубликат]

$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

Вы определяете строку, используя одинарные кавычки, и PHP не анализирует строки с разделителями одиночной кавычки. Чтобы получить переменную интерполяцию, вам нужно использовать двойные кавычки или конкатенацию строк (или их комбинацию). См. http://php.net/manual/en/language.types.string.php для получения дополнительной информации.

Также вы должны проверить, что mysql_query вернул действительный ресурс результата, иначе fetch_ *, num_rows и т. д. не будут работать с результатом, поскольку это не результат! IE:

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

if( $result === FALSE ) {
   trigger_error('Query failed returning error: '. mysql_error(),E_USER_ERROR);
} else {
   while( $row = mysql_fetch_array($result) ) {
      echo $row['username'];
   }
}

http://us.php.net/manual/en/function.mysql-query.php для получения дополнительной информации.

20
задан Eric S. 12 November 2015 в 19:11
поделиться

4 ответа

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

  • Приложение Homescreen / Launcher отправляет намерение начать действие с использованием функции startActivity () ( startActivity () является вызовом связующего звена для ActivityManager)
  • Activity Manager отправляет запрос процесса fork с использованием сокета на Zygote.
  • Zygote открывает новый экземпляр виртуальной машины, который загружает ActivityThread (поток активности управляет
  • ActivityThread имеет реальный main () для приложения.
  • .
  • ActivityThread имеет реальный main () для приложения.
  • ]
  • ActivityThread вызывает приложение onCreate ().

Поэтому ActivityThread отвечает за создание экземпляра Activity (внутри метода performLaunchActivity)

Объяснение:

Если вы наблюдаете stacktrace:

android.app.Instrumentation.newActivity(Instrumentation.java:1021)
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)

Код, в котором создается новая активность:

private Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {
    ... //More code
    Activity activity = null;
    try {
        java.lang.ClassLoader cl = r.packageInfo.getClassLoader();
        activity = mInstrumentation.newActivity(
                cl, component.getClassName(), r.intent);
        StrictMode.incrementExpectedActivityCount(activity.getClass());
        r.intent.setExtrasClassLoader(cl);
        r.intent.prepareToEnterProcess();
        if (r.state != null) {
            r.state.setClassLoader(cl);
        }
    } catch (Exception e) {
        if (!mInstrumentation.onException(activity, e)) {
            throw new RuntimeException(
                "Unable to instantiate activity " + component
                + ": " + e.toString(), e);
        }
    }
    ... //More code
    return activity;
}

Ins trumentation.java (класс будет создан для вас перед любым кодом приложения)

public Activity newActivity(ClassLoader cl, String className,
        Intent intent)
        throws InstantiationException, IllegalAccessException,
        ClassNotFoundException {
    return (Activity)cl.loadClass(className).newInstance();
}
23
ответ дан abhishesh 23 August 2018 в 23:35
поделиться

Простой способ проверить путь к методу конструктора - создать временный проект, переопределить конструктор в вашем Activity и разместить там точку останова.

Вы должны иметь возможность пройти весь код и найдите то, что именно вы хотите.

3
ответ дан dilix 23 August 2018 в 23:35
поделиться

Ядро Android отвечает за управление созданием действия и управляет им в жизненном цикле своей деятельности.

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

Когда вы вызываете startActivity, ядро ​​Android принимает управление и делает экземпляр действия (или повторно использует предыдущий, если соответствует) и начинает вызывать события жизненного цикла активности

Вы можете увидеть это здесь: http://developer.android.com/reference/android/app/Activity.html в части Lifecycle Activity

0
ответ дан Francisco Hernandez 23 August 2018 в 23:35
поделиться

Пока вы не участвуете в интервью разработчику системы Android (хакер ядра, ...), ответ просто: это часть реализации платформы Android, которую нормальный разработчик Android не должен заботиться, потому что принципа абстракции и слоя, и его можно найти в редком случае, вам действительно нужно это знать.

2
ответ дан H. Idden 23 August 2018 в 23:35
поделиться
Другие вопросы по тегам:

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