Activity配置:
<activity
android:name=".activity.NoteInfoActivity"
android:label="@string/title_activity_note_info"
android:theme="@android:style/Theme.Light.NoTitleBar"
>
<intent-filter >
<action android:name="@string/NoteInfo"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
则,当使用Java代码隐式启动该Activity:
Intent intent = new Intent();
intent.setAction(getString(R.string.NoteInfo));
intent.putExtra(Contast.OBJ_NOTEPATE, notepad);
startActivity(intent);
抛出异常:
AndroidRuntime(18397): Android.content.ActivityNotFoundException:
No Activity found to handle Intent {{act=@string/cn.com.lu.yuejiben.NoteInfo (has extras) }
异常显示:系统没有找到接收action为@string/cn.com.lu.yuejiben.NoteInfo的Activity,原因是配置Activity的action时,使用了@string的写法。然后不知为何,android就抽风了,可能是解析xml和String文件产生问题,导致Action对不上,于是,无法启动Activity。
而即使java代码写出如下形式:
Intent intent = new Intent();
intent.setAction("@string/NoteInfo");
intent.putExtra(Contast.OBJ_NOTEPATE, notepad);
startActivity(intent);
或如下形式也不会成功:
Intent intent = new Intent();
intent.setAction("@string/cn.com.lu.yuejiben.action.NoteInfo");
intent.putExtra(Contast.OBJ_NOTEPATE, notepad);
startActivity(intent);
于是,我只能呵呵。。。果然抽风了。。。。