【问题标题】:Starting Cascading Activities on Button Click在按钮单击时启动级联活动
【发布时间】: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();

标签: java android


【解决方案1】:

您必须在 Menifest 中提及所有 3 项活动。

【讨论】:

  • 我已经提到了所有这些,并使用清单中的意图和操作属性从我的 Splash Activity 中一一测试了它们
  • 您可以尝试删除您的 onPause() 方法吗?
  • 你的问题不在于你问的问题。它是因为 connectThread.killConnectThread();
  • 感谢 Sagar 抽出宝贵时间
  • 朋友,如果你真的是这个意思,那就接受我的回答而不是感谢我。
【解决方案2】:
Caused by: java.lang.NullPointerException at com.example.viva_project.MainActivity.onPause(MainActivity.java:309)

问题出在这里:

connectThread.killConnectThread();

connectThreadnull 并且您正在尝试执行方法killConnectThread()

确保将 Activity1、Activity2 和 Activity3 注册到您的Manifest.xml

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多