2

嗨!专家我有两个活动 1- MainActivity 2- 启动

在使用 Thread 开始活动后,我正在MainActivity通过新意图开始我的活动。Startup但是当我通过MainActivity在骆驼大小写和 inten-filter 标记中传递拼写来调用新意图时<action android:name="com.example.test.MainActivity" ,如下所示

Thread timer =new Thread(){
public void run(){
 try{
sleep(5000);
}catch(InterruptedException e){
e.printStackTrace();
}finally{
Intent startUpIntent = new Intent("com.example.test.MainActivity");                         

startActivity(startUpIntent);
                    }
                }
            };

这里是 AndroidMaifest.xml 文件代码

<activity
        android:name="com.example.test.Startup"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.example.newboston.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.example.test.MainActivity" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

它给出了错误。但是当我使用代码作为

Intent startUpIntent = new Intent("com.example.test.MainActivity");                         

AndroidManifest.xml 代码

<intent-filter>
<action android:name="com.example.test.MainActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

然后它可以按我的意愿正常工作。

我想知道使用大写字母而不是驼峰字母的原因。???

谢谢...

4

2 回答 2

0

您可能希望为特定组件定义意图

Intent startUpIntent = new Intent(Startup.this, MainActivity.class);

然后,您无需为清单中的<intent-filter>for烦恼。MainActivity

于 2013-07-28T19:57:51.347 回答
0

类中定义了许多动作常量Intent。他们之中有一些是:

ACTION_MAIN: Start up as the initial activity of a task, with no data input and no returned output. 

ACTION_CALL: Initiate a phone call. 

ACTION_EDIT: Display data for the user to edit.

ACTION MAIN在清单中使用,您将ACTION_android.intent.action.. 由于它们是在您正在使用的类中定义的常量,因此需要按定义使用它们。

例如,以下两个声明是不一样的。他们定义并实例化了两个不同的变量:

int myVariable = 1;
int MYVARIABLE = 1;

所以,你不能写:

<action android:name="android.intent.action.MAIN" />

作为

<action android:name="android.intent.action.main" />

或除前者之外的任何其他东西。

从 android 开发者资源页面<action>

要将 [Intent 类中定义的标准操作] 之一分配给此属性,请在前面加上“android.intent.action”。到 ACTION_ 之后的字符串。例如,对于 ACTION_MAIN,使用“android.intent.action.MAIN”,对于 ACTION_WEB_SEARCH,使用“android.intent.action.WEB_SEARCH”。

要了解更多信息:

意图

行动

于 2013-07-28T20:24:51.133 回答