$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 для получения дополнительной информации.
Когда на рабочем столе отображается значок запуска, на экране появляется следующее событие:
blockquote>
- Приложение 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(); }
Простой способ проверить путь к методу конструктора - создать временный проект, переопределить конструктор в вашем Activity
и разместить там точку останова.
Вы должны иметь возможность пройти весь код и найдите то, что именно вы хотите.
Ядро Android отвечает за управление созданием действия и управляет им в жизненном цикле своей деятельности.
Система Android заботится о вызове всех событий, которые вы можете контролировать в своем классе, в правильном порядке, добавить активность в стеке и многое другое.
Когда вы вызываете startActivity, ядро Android принимает управление и делает экземпляр действия (или повторно использует предыдущий, если соответствует) и начинает вызывать события жизненного цикла активности
Вы можете увидеть это здесь: http://developer.android.com/reference/android/app/Activity.html в части Lifecycle Activity
Пока вы не участвуете в интервью разработчику системы Android (хакер ядра, ...), ответ просто: это часть реализации платформы Android, которую нормальный разработчик Android не должен заботиться, потому что принципа абстракции и слоя, и его можно найти в редком случае, вам действительно нужно это знать.