Android에서 실행기를 작성하고 있으며 여기는 행운을 가지고 잠시 동안 수정하려고 시도한 문제입니다.PackageManager.queryIntentActivities()가 불완전한 목록을 반환합니까?
내 런처 시작 부분에 실행중인 모든 활동, 예를 들어 onResume()
을 쿼리하는 코드는 다음과 같습니다.
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List<ResolveInfo> infos = packageManager.queryIntentActivities(mainIntent, 0);
for (final ResolveInfo info : infos) {
// create my own recrord for each activity
}
문제는 그 장치를 기본으로 내 실행을 설정하고 reboot
경우, 때마다 나는 위의 코드에 의해 전체 목록의 일부를 얻을 수 있다는 것입니다. Wind-up Knight와 같은 커다란 뚱뚱한 활동이 항상 빠져있는 것처럼 보입니다. 그러나 코드를 두 번 이상 실행하면 전체 목록이 반환됩니다. 어떤 사람이 그 이유를 알고 있습니까? 내 짐작으로, PackageManager가 뚱뚱한 액티비티를 분석 할 시간이 필요하고, queryIntentActivities()
이 너무 일찍 호출되는 경우, 부분 목록 만 반환합니다. 사실입니까?
하지만 기본 시작 프로그램에이 문제가있는 이유는 무엇입니까?
재부팅하기 전에 전체 목록을 저장할 수 있습니까? 예를 들어 환경 설정 또는 파일. – hasanghaforian