调用主要活动会显示未找到活动异常

时间:2016-11-29 05:52:55

标签: android android-intent android-activity android-manifest

我正在尝试调用主要活动,但它显示活动未找到异常。我无法在内部重现这个问题。但我的应用程序的很多用户都面临着这个问题。

有关重新创建此问题的任何建议。

我的代码在这里:

      Intent intent = new Intent(Intent.ACTION_MAIN);
      intent.addCategory(Intent.CATEGORY_HOME);
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      activity.startActivity(intent);

我的清单文件中的主要活动

             <activity android:name="com.example.EntryAct" android:configChanges="keyboardHidden|navigation" android:label="@string/app_name">
                          <intent-filter>
                            <action android:name="android.intent.action.MAIN" />
                            <category android:name="android.intent.category.LAUNCHER" />
                          </intent-filter>
                          </activity>

崩溃日志

    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 }
        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1878)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1545)
        at android.app.Activity.startActivityForResult(Activity.java:4283)
        at android.app.Activity.startActivityForResult(Activity.java:4230)
        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817)
        at android.app.Activity.startActivity(Activity.java:4567)
        at android.app.Activity.startActivity(Activity.java:4535)
        at com.example.SlideManager.onEvent(SlideManager.java:797)
        at com.example.SlideManager.handleBackPressed(SlideManager.java:484)
        at com.example.HostActivity.onBackPressed(BaseHostActivity.java:628)
        at android.app.Activity.onKeyUp(Activity.java:2712)
        at android.view.KeyEvent.dispatch(KeyEvent.java:3273)
        at android.app.Activity.dispatchKeyEvent(Activity.java:2982)

我在stackoverflow中分析了我们是否可以调用活动(即检查调用活动状态)。我有一个功能,就在下面

        private boolean isCallable(Intent intent) {List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, 
                PackageManager.MATCH_DEFAULT_ONLY);
                return list.size() > 0;
        }

我的问题清单:

  1. 为什么我不能在家里重现这个问题。
  2. 我可以使用上述解决方案来避免崩溃。这好转吗?
  3. 为什么这个崩溃发生在特定用户身上。
  4. 需要你帮助的人。请帮帮我......

1 个答案:

答案 0 :(得分:0)

试试此代码

  Intent intent = new Intent(CurrentActivity.this, SecondActivity.class);
  intent.addCategory(Intent.CATEGORY_HOME);
  intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  activity.startActivity(intent);