我将从MainActivity中扩展一个“Login”类。
MainActivity看起来像这样:
在login.class中,我只是调用了布局:
您可以看到,我在登录类中注释掉了“super.onCreate”。在这里再次调用MainActivity的onCreate没有意义。但是,如果将此已注释的super.onCreate取消注释,我会收到一些异常:
MainActivity看起来像这样:
public class MainActivity extends FragmentActivity {
/** Called when the activity is first created. */
private static String TAG = "MainActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
Intent login_activity = new Intent(this, Login.class);
startActivity(login_activity);
Log.d(TAG,"Login created");
}
}
在login.class中,我只是调用了布局:
public class Login extends MainActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
//super.onCreate(savedInstanceState);
setContentView(R.layout.login);
}
}
您可以看到,我在登录类中注释掉了“super.onCreate”。在这里再次调用MainActivity的onCreate没有意义。但是,如果将此已注释的super.onCreate取消注释,我会收到一些异常:
12-31 11:37:47.688: E/AndroidRuntime(4206): FATAL EXCEPTION: main
12-31 11:37:47.688: E/AndroidRuntime(4206): android.app.SuperNotCalledException: Activity {de.svennergr.htn/de.svennergr.htn.Login} did not call through to super.onCreate()
12-31 11:37:47.688: E/AndroidRuntime(4206): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2146)
12-31 11:37:47.688: E/AndroidRuntime(4206): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12-31 11:37:47.688: E/AndroidRuntime(4206): at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-31 11:37:47.688: E/AndroidRuntime(4206): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
12-31 11:37:47.688: E/AndroidRuntime(4206): at android.os.Handler.dispatchMessage(Handler.java:99)
12-31 11:37:47.688: E/AndroidRuntime(4206): at android.os.Looper.loop(Looper.java:137)
12-31 11:37:47.688: E/AndroidRuntime(4206): at android.app.ActivityThread.main(ActivityThread.java:5039)
12-31 11:37:47.688: E/AndroidRuntime(4206): at java.lang.reflect.Method.invokeNative(Native Method)
12-31 11:37:47.688: E/AndroidRuntime(4206): at java.lang.reflect.Method.invoke(Method.java:511)
12-31 11:37:47.688: E/AndroidRuntime(4206): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-31 11:37:47.688: E/AndroidRuntime(4206): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-31 11:37:47.688: E/AndroidRuntime(4206): at dalvik.system.NativeStart.main(Native Method)
当我不注释super.oncreate时,我会得到一个不停止的循环,创建大量“Login”对象/活动。
我该怎么解决这个问题?