我在 ICS 设备上遇到了非常奇怪的行为。我在布局中有一个按钮,然后单击 Listener,如下所示。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// To just demonstrate weird behavior, i am throwing run-time exception
throw new RuntimeException("testing weird behavior on ICS");
//String s = null; s.length(); You can try this , application does not crash.
}
});
}
在正常情况下,这应该会使应用程序崩溃,但令人惊讶的是,我可以在 logcat 中看到如下所示的崩溃,但应用程序不会崩溃。而是我看到
Failed to handle callback; interface not implemented, callback:android.view.View$PerformClick@40d80cc8
java.lang.RuntimeException: testing weird behaviour
at com.example.sampleproject.MainActivity$1.onClick(MainActivity.java:21)
at android.view.View.performClick(View.java:3538)
at android.view.View$PerformClick.run(View.java:14330)
at android.os.Handler.handleCallback(Handler.java:608)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:4977)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
任何想法为什么我会遇到这种奇怪的行为,任何帮助表示赞赏。
根据@Jen 的建议,我尝试了 b.performClick(); ,并且应用程序显示正常行为,但在 onClickListener 中的行为仍然相同。
我在这里提交的错误是链接 http://code.google.com/p/android/issues/detail?id=35517&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars