使用创建Main activity
问题描述:
我先用以下方式声明了mian activity:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="com.package.name.MyActivity"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
然后使用如下代码时就得到一个错误提示:No Activity found to handle Intent { act=com.package.name.MyActivity flg=0x24000000 }
Intent intent = new Intent("com.package.name.MyActivity");
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
如果不使用,如何使用来开始这个动作呢?
我又改为以下代码,还是不正确。
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="com.package.name.VIEW"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Intent intent = new Intent("com.package.name.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
答
先指定两个intent filters:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.package.name.MyAction"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
然后使用action名称开启activity:
Intent intent = new Intent("com.package.name.MyAction");
context.startActivity(intent);
或者使用class名称:
Intent intent = new Intent(context, MyActivity.class);
context.startActivity(intent);
答
在action标签中的属性名称要与action的名称相同,而不应该是activity的名称。所以删掉那一行:
<action android:name="com.package.name.MyActivity"/>
答
你的class名称不是com.package.name.MyActivity
,应该是com.package.name.general.MyActivity
。一个简单的解决方法是用一个类创建一个新的intent,不是用一个报名创建。你可以使用自动完成填写正确的类。