【发布时间】:2014-02-04 21:39:26
【问题描述】:
我的 android 应用程序中有各种活动,比如 Activity1、Activity2、Activity3 等
所有都由按钮单击或列表视图选择事件上的意图对象启动。在某些活动中,例如在 Activity1 中,我将包存储在意图对象中,然后启动 Activity2,在第二个 Activity 上,startActivity() 方法不起作用它与内存相关的问题,例如意图太重而无法进入下一个 Activity3。
以下是我的代码
Class Activity2 extends Activity
{
private Intent i;
private Button btn;
@Override
protected void onCreate(Bundle b)
{
//super...
i=new Intent(Activity2.this,Activity3.class);
//btn=.....
//以下是按钮单击事件,我将从该事件导航到 Activity3
btn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(i); //here it crashed
}});
}
是内存相关问题还是编码问题?如果编码有问题,那么除了 Intent 之外,Activity 还能如何启动。
下面是日志
02-05 02:55:53.367: E/AndroidRuntime(4500): FATAL EXCEPTION: main
02-05 02:55:53.367: E/AndroidRuntime(4500): java.lang.RuntimeException: Unable to pause activity {com.example.viva_project/com.example.viva_project.MainActivity}: java.lang.NullPointerException
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2358)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2315)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2295)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.app.ActivityThread.access$1700(ActivityThread.java:117)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:942)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.os.Handler.dispatchMessage(Handler.java:99)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.os.Looper.loop(Looper.java:130)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.app.ActivityThread.main(ActivityThread.java:3687)
02-05 02:55:53.367: E/AndroidRuntime(4500): at java.lang.reflect.Method.invokeNative(Native Method)
02-05 02:55:53.367: E/AndroidRuntime(4500): at java.lang.reflect.Method.invoke(Method.java:507)
02-05 02:55:53.367: E/AndroidRuntime(4500): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
02-05 02:55:53.367: E/AndroidRuntime(4500): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
02-05 02:55:53.367: E/AndroidRuntime(4500): at dalvik.system.NativeStart.main(Native Method)
02-05 02:55:53.367: E/AndroidRuntime(4500): Caused by: java.lang.NullPointerException
02-05 02:55:53.367: E/AndroidRuntime(4500): at com.example.viva_project.MainActivity.onPause(MainActivity.java:309)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.app.Activity.performPause(Activity.java:3851)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1191)
02-05 02:55:53.367: E/AndroidRuntime(4500): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2345)
02-05 02:55:53.367: E/AndroidRuntime(4500): ... 12 more
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
connectThread.killConnectThread();
}
【问题讨论】:
-
您在 LogCat 中遇到什么错误?
-
你能在 com.example.viva_project.MainActivity.onPause(MainActivity.java:309) 分享 MainActivity.java 的 onPause() 的代码吗?有 NullPointerException
-
对不起,我确实覆盖了先生,它现在是共享的
-
@MainActivity.java 第 309 行是什么?
-
connectThread.killConnectThread();