【问题标题】:Android async task - no activity found to handle intentAndroid 异步任务 - 未找到处理意图的活动
【发布时间】:2012-09-24 21:05:10
【问题描述】:

我正在使用异步任务来创建加载屏幕,但是当我想将意图传递给主要活动时,应用程序崩溃...这里有一些代码:

 public class StartActivity extends Activity {
     protected boolean _active = true;
     protected int _splashTime = 5000;

     @Override
     public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loading_screen);

    Thread splashThread = new Thread() {
        @Override
        public void run(){
            try {
                int waited = 0;
                while(_active && (waited <_splashTime)) {
                    sleep(100);
                    if(_active) {
                        waited +=100;
                    }
                }
            } catch(InterruptedException e) { 
            } finally {

                startActivity(new Intent("HNappActivity"));
                finish();

            }
        }
    };
    splashThread.start();
    }

这里是清单:

  <activity
        android:name=".StartActivity"
        android:label="@string/title_activity_hnapp" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="HNappActivity"></activity>

日志猫:

  09-24 20:47:06.841: E/AndroidRuntime(556): FATAL EXCEPTION: Thread-10
  09-24 20:47:06.841: E/AndroidRuntime(556): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=HNappActivity }
  09-24 20:47:06.841: E/AndroidRuntime(556):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409)
  09-24 20:47:06.841: E/AndroidRuntime(556):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
  09-24 20:47:06.841: E/AndroidRuntime(556):    at android.app.Activity.startActivityForResult(Activity.java:2827)
  09-24 20:47:06.841: E/AndroidRuntime(556):    at android.app.Activity.startActivity(Activity.java:2933)
  09-24 20:47:06.841: E/AndroidRuntime(556):    at sk.ecopress.hn.android.StartActivity$1.run(StartActivity.java:37)

StartActivity 类首先启动,它显示加载屏幕,然后它应该将意图传递给主要活动,但它崩溃了。

【问题讨论】:

    标签: android android-intent android-asynctask


    【解决方案1】:

    你需要改变:

        startActivity(new Intent("HNappActivity")); 
    

    到:

        startActivity(new Intent(StartActivity.this, HNappActivity.class));
    

    此外,我假设您的项目中必须存在该活动。

    【讨论】:

    • 哦,我忘记了...谢谢...请注意,当主要活动开始时,大约有 5 秒黑屏,而 logcat 正在传播有关垃圾收集器的消息,5 秒后,布局已加载。可以在 startactivity 恢复的同时加载 main 的 Activity 布局吗?
    • 我不确定我是否理解这个问题。使用您发布的代码,您将在 5 秒内看到 R.layout.loading_screen 中的内容,然后再转到 HNappActivity。
    • 是的,在这 5 秒内,我想加载 HNappActivity,并在 5 秒后立即显示它。因为现在,经过 5 秒,然后加载 HNappActivity 需要 3-4 秒,在这 3-4 秒之后,显示活动。所以我想改变它。有什么想法吗?
    • 上面的代码在加载下一个活动之前等待 5 秒。为什么不完全失去线程睡眠并立即启动下一个活动?此外,如果加载下一个 Activity 需要 3 到 4 秒,您可能需要考虑优化加载下一个 Activity 的方式。
    • 重点是用一些图像填充这 3-4 秒,因此屏幕不会变黑。我真的不知道它为什么启动这么久,logcat 只是在传播一些垃圾收集器消息..
    【解决方案2】:

    改变

    <activity android:name="HNappActivity"></activity>
    

     <activity android:name=".HNappActivity"></activity>
    

    类名前的点很重要。

    正如他们所说,您必须使用

    调用活动
      startActivity(new Intent(StartActivity.this, HNappActivity.class));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 2022-09-28
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多