현재 Android 시작 프로그램을 만들고 있으며 다른 일을 수행하는 방법에 대해 Stackoverflow에서 많은 시간을 보냈습니다. 그러나 나는 내 자신의 어플리케이션을 열어서 걸림돌을 때렸다. 내가 사용한 코드는이 주제에 대한 다른 질문들과 함께 결합되었습니다. 이제 설치된 앱 목록이 있지만 클릭하면 내 앱이 다시 열립니다. 잘못된 의도로 잘못된 의도를 사용하고 있지만 문제를 해결하는 방법을 모르겠습니다. 그래서 내 질문 : 선택한 응용 프로그램을 여는 더 좋은 방법은 무엇입니까? 아래는 사용 된 코드입니다. 참고 : 저는 코딩의 초보자입니다. 당신은 당신이 수행 한 멋진 코드 만 실수를 쓴내가 시도하는 방식으로 응용 프로그램을 시작할 수 있습니까?
PackageManager pm = this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List <String> myList = new ArrayList <String>();
ArrayList <ResolveInfo> list = (ArrayList <ResolveInfo>) pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
for (ResolveInfo rInfo: list) {
System.out.println("Installed Applications " + rInfo.activityInfo.applicationInfo.loadIcon(pm).toString() + rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
myList.add(rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
}
ListView lists = (ListView) findViewById(R.id.content);
ArrayAdapter <String> aa = new ArrayAdapter <String> (this, android.R.layout.simple_list_item_1, myList);
lists.setAdapter(aa);
lists.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView <? > parent, View view, int position, long id) {
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.LAUNCHER");
PackageManager pm = getPackageManager();
i = pm.getLaunchIntentForPackage(getPackageName());
startActivity(i);
}
});
'getPackageName()'메소드는 현재'Activity'의 패키지 이름을 반환하기 때문에'getLaunchIntentForPackage (getPackageName())'는 단순히 자신의 응용 프로그램을 다시 시작합니다. 다른 앱을 열거 한 후에 * 패키지 이름을 가져와 클릭 한 목록 항목에서 가져와야합니다. – Squonk