在OnPostExecute()中使用StartActivity

时间:2014-03-11 15:03:54

标签: java android asynchronous android-activity

我知道这个问题已经写好了,这就是为什么,我发布我的问题,因为它很奇怪...... 我只是想从AsyncTask的OnPostExecute()开始进行其他活动。 所以我看到这条线有效:

this.context.startActivity(new Intent(this.context, com.ListCrossingPoint.ListCrossingPoint.class));

其中 this.context 是开始活动的上下文,它位于asyntask的构造函数中, com.ListCrossingPoint.ListCrossingPoint.class 是类到达,这是在其他包装。

并且认为它会运作良好,我有这个错误:

03-11 14:59:22.304: E/AndroidRuntime(1041): FATAL EXCEPTION: main
03-11 14:59:22.304: E/AndroidRuntime(1041): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.main/com.ListCrossingPoint.ListCrossingPoint}; 
                      have you declared this activity in your AndroidManifest.xml?
03-11 14:59:22.304: E/AndroidRuntime(1041): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1541)
03-11 14:59:22.304: E/AndroidRuntime(1041): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
...

所以,我去看看我的活动是否已经宣布,并且,yess,它宣布,所以我不明白..

   <activity android:name="com.listcrossingpoint.ListCrossingPoint"     android:label="@string/menu_point_list" 
android:configChanges="orientation" android:screenOrientation="landscape" />      

5 个答案:

答案 0 :(得分:1)

你输错了

 com.ListCrossingPoint.ListCrossingPoint.class

与Manifest中的条目不匹配。它应该是

 com.listCrossingPoint.ListCrossingPoint.class

您在L构造函数中拥有大写Intent,但在AndroidManifest.xml

中它是小写的

答案 1 :(得分:0)

我认为这是由于拼写错误造成的:

startActivity()调用

中的

"com.ListCrossingPoint.ListCrossingPoint.class"

在您拥有的Manifest

"com.listcrossingpoint.ListCrossingPoint"

(大写和小写L)

答案 2 :(得分:0)

Woohoo这是一个Spell Mistake的问题。你在AndroidManifest.xml中定义的是

<activity android:name="com.listcrossingpoint.ListCrossingPoint"     android:label="@string/menu_point_list" 
android:configChanges="orientation" android:screenOrientation="landscape" />

你正在打电话

this.context.startActivity(new Intent(this.context,   com.ListCrossingPoint.ListCrossingPoint.class));

这在意图中。这是包名称的问题。

将此 ListCrossingPoint 更改为 listcrossingpoint

答案 3 :(得分:0)

您可以使用小写字母将包重命名为listcrossingpoint吗?,不得使用大写字母包名称。

你可以在eclipse中使用refactor / rename来做到这一点。 (ALT + SHIFT + R)

答案 4 :(得分:0)

我解决了我的问题。我重命名了包com.listpoint,像这样,没有歧义,我验证所有引用,它的工作。谢谢大家=)