我目前正在休息,因为我可以开始正常startActivity()
。它总是给我这个错误:
尝试调用虚方法 ' android.app.ActivityThread $ ApplicationThread android.app.ActivityThread.getApplicationThread()'在null对象上 参考
我是从我的应用程序开始的 欢迎活动:
application.getUserFromDatabase(getApplicationContext(), username, password);
应用:
public void getUserFromDatabase(Context context, String username, String password) {
//new GetFromDatabase().execute("getUser.php", "?username=" + username + "&password=" + password, this, context);
WelcomeActivity activity = new WelcomeActivity();
activity.startMainActivity();
}
AndroidManifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.mydomain.app">
<application
android:name=".MainApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
</activity>
<activity android:name=".WelcomeActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
提前谢谢你:)
编辑: 我忘了在这里添加我的方法startMainActivity:
public void startMainActivity(){
Intent startMain = new Intent(getApplicationContext(), MainActivity.class)
startActivity(startMain);
}
答案 0 :(得分:0)
你必须使用startActivity();
的意图示例:
Intent intent = new Intent(this, WelcomeActivity.class);
startActivtiy(intent);
答案 1 :(得分:0)
它肯定会导致您出现空指针异常,因为尚未创建WelcomeActivity
。您无法通过以下方式创建活动的新实例来启动活动:
WelcomeActivity activity = new WelcomeActivity();
您的活动需要从以下开始:
Intent welcome = new Intent(context, WelcomeActivity.class);
context.startActivtiy(welcome);
或添加正确的intent-filter,以便Android系统启动该活动。
您可以使用以下内容从Application开始您的活动:
// FLAG_ACTIVITY_NEW_TASK is required
// FLAG_ACTIVITY_CLEAR_TOP brings back to the top of the stack
Intent mainActivity = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(mainActivity);
虽然我认为您不应该通过应用程序启动活动。您需要仔细考虑您的设计,以便与应用程序没有活动连接。