【发布时间】:2012-07-28 17:21:45
【问题描述】:
当我以这种方式宣布我的主要活动时:
<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 i = new Intent(this, MyActivity.class);,我该如何在action for <intent-filter> 的帮助下做到这一点
没有帮助:
<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);
【问题讨论】:
-
创建自定义“操作”,例如
com.package.name.ACTION_VIEW,并按照 Jeffery Blatman 的建议,删除com.package.name.MyActivity的“操作”。然后,您只需使用自定义操作来启动Activity。 -
我更改了代码,但对我没有帮助。我哪里做错了?
标签: android intentfilter