所以我做了一个新的 Activity 类:
public class TutorialActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tutorial);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.tutorial, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
在一个线程中我尝试打开它:
public void run() {
if(newGame) {
Intent intent = new Intent(this.activity, TutorialActivity.class);
this.activity.startActivity(intent);
}
while(inGame) {
try {
this.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我看到了新的 Activity ,因为我看到了我在其中设置的文本,但它立即崩溃了。所以它确实加载了 Activity,但随后发生了一些事情,它就崩溃了。
日志:
08-29 23:49:45.242: D/AndroidRuntime(21100): Shutting down VM
08-29 23:49:45.242: E/AndroidRuntime(21100): FATAL EXCEPTION: main
08-29 23:49:45.242: E/AndroidRuntime(21100): Process: com.example.trollacademy, PID: 21100
08-29 23:49:45.242: E/AndroidRuntime(21100): java.lang.RuntimeException: Unable to stop activity {com.example.trollacademy/com.example.trollacademy.MainActivity}: android.util.SuperNotCalledException: Activity {com.example.trollacademy/com.example.trollacademy.MainActivity} did not call through to super.onStop()
08-29 23:49:45.242: E/AndroidRuntime(21100): at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3855)
08-29 23:49:45.242: E/AndroidRuntime(21100): at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3908)
08-29 23:49:45.242: E/AndroidRuntime(21100): at android.app.ActivityThread.access$1200(ActivityThread.java:177)
08-29 23:49:45.242: E/AndroidRuntime(21100): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
08-29 23:49:45.242: E/AndroidRuntime(21100): at android.os.Handler.dispatchMessage(Handler.java:102)
08-29 23:49:45.242: E/AndroidRuntime(21100): at android.os.Looper.loop(Looper.java:145)
08-29 23:49:45.242: E/AndroidRuntime(21100): at android.app.ActivityThread.main(ActivityThread.java:5942)
08-29 23:49:45.242: E/AndroidRuntime(21100): at java.lang.reflect.Method.invoke(Native Method)
08-29 23:49:45.242: E/AndroidRuntime(21100): at java.lang.reflect.Method.invoke(Method.java:372)
08-29 23:49:45.242: E/AndroidRuntime(21100): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
08-29 23:49:45.242: E/AndroidRuntime(21100): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
08-29 23:49:45.242: E/AndroidRuntime(21100): Caused by: android.util.SuperNotCalledException: Activity {com.example.trollacademy/com.example.trollacademy.MainActivity} did not call through to super.onStop()
08-29 23:49:45.242: E/AndroidRuntime(21100): at android.app.Activity.performStop(Activity.java:6495)
08-29 23:49:45.242: E/AndroidRuntime(21100): at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3852)
08-29 23:49:45.242: E/AndroidRuntime(21100): ... 10 more
最佳答案
您调用新“TutorialActivity”的 Activity 的 onStop()
方法实现错误。
带有标签@Override
的方法应该总是带有一个super调用,所以你的onStop方法应该看起来像这样:
@Override
public void onStop(){
super.onStop(); // THIS LINE IS MISSING ON YOUR CODE
//Other things you want to do.
}
您没有发布其他 Activity 的这部分代码,但可能就是这样。您还可以编辑您的问题并添加这部分代码来帮助其他人。
关于android - 创建新 Activity 后应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32292951/