如何在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
比我做得更好