如何在Android中启动家庭活动
我正在尝试编写一个类如何在Android中启动家庭活动,android,android-intent,Android,Android Intent,我正在尝试编写一个类BaseActivity,以处理几个通用行为 其中之一是捕捉应用程序图标上的单击并重新定向到第一个活动。 这听起来很简单,但是这个BaseActivity将在一个库项目中。我不能使用显式意图(由类定义)。相反,我尝试使用一个通用的意图: @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) {
BaseActivity
,以处理几个通用行为
其中之一是捕捉应用程序图标上的单击并重新定向到第一个活动。
这听起来很简单,但是这个BaseActivity
将在一个库项目中。我不能使用显式意图(由类定义)。相反,我尝试使用一个通用的意图:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
// app icon in action bar clicked: go back home
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setPackage(getPackageName());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
我的问题是我得到了一个活动NotFoundException
,我不明白为什么
我能做什么?听起来您好像在从
PackageManager
搜索。它将包名作为一个参数,并创建一个Intent
,以启动该包的主活动。这样,您就不需要指明应该在包中启动的特定类
当前的实现将首先查找
类别category\u INFO
,类别中主要活动的下一个
CATEGORY\u启动器
,如果两者均未找到,则返回null
看起来您没有设置活动,只是设置了package@zapl如果我没有设置包,那么所有应用程序都可能是意向解析的候选。不知何故,我需要为我的应用程序添加一个过滤器。这正是我想要做的,而且
PackageManage
比我做得更好