2012-05-30 2 views
0

나는 전화에 설치 앱 목록을 얻은 다음 내 앱에서 해당 앱을 탭하여 열어서 하나의 앱을 만들고 있습니다. 그러나 CATEGORY_LAUNCHER 여기에 문제 인상은 널 포인터를 제공열린 앱에서 다른 앱과의 문제

내 로그 캣 출력 ::이 :: UPDATE에 대한

05-30 14:34:33.876: E/Handler(14042): Failed to handle callback; interface not implemented, callback:[email protected] 
05-30 14:34:33.876: E/Handler(14042): java.lang.NullPointerException 
05-30 14:34:33.876: E/Handler(14042): at com.AppFavorits.GetAllApp$1$1.onClick(GetAllApp.java:83) 
05-30 14:34:33.876: E/Handler(14042): at android.view.View.performClick(View.java:3538) 
05-30 14:34:33.876: E/Handler(14042): at android.widget.CompoundButton.performClick(CompoundButton.java:105) 
05-30 14:34:33.876: E/Handler(14042): at android.view.View$PerformClick.run(View.java:14330) 
05-30 14:34:33.876: E/Handler(14042): at android.os.Handler.handleCallback(Handler.java:607) 
05-30 14:34:33.876: E/Handler(14042): at android.os.Handler.dispatchMessage(Handler.java:92) 
05-30 14:34:33.876: E/Handler(14042): at android.os.Looper.loop(Looper.java:154) 
05-30 14:34:33.876: E/Handler(14042): at android.app.ActivityThread.main(ActivityThread.java:4974) 
05-30 14:34:33.876: E/Handler(14042): at java.lang.reflect.Method.invokeNative(Native Method) 
05-30 14:34:33.876: E/Handler(14042): at java.lang.reflect.Method.invoke(Method.java:511) 
05-30 14:34:33.876: E/Handler(14042): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
05-30 14:34:33.876: E/Handler(14042): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
05-30 14:34:33.876: E/Handler(14042): at dalvik.system.NativeStart.main(Native Method) 

내 코드

final Dialog dialog = new Dialog(GetAllApp.this); 
        dialog.setContentView(R.layout.maindialog); 
        dialog.setTitle("This is my custom dialog box"); 
        dialog.setCancelable(true); 
        //there are a lot of settings, for dialog, check them all out! 

        //set up text 
        final RadioButton rdoDialogopen = (RadioButton)dialog.findViewById(R.id.rdoDialogopen); 
        final RadioButton rdoDialogfav = (RadioButton)dialog.findViewById(R.id.rdoDialogfav); 
        final RadioButton rdoDialogopenNfav = (RadioButton)dialog.findViewById(R.id.rdoDialogopenNfav); 

       rdoDialogopen.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) { 
         if (rdoDialogopen.isChecked() == true) { 
          if(lstpinfo.get(position).pname !=null) 
          { 
          Intent i = new Intent(Intent.ACTION_MAIN); 
          PackageManager manager = getPackageManager(); 
          i = manager.getLaunchIntentForPackage(lstpinfo 
            .get(position).pname); 
          i.addCategory(Intent.CATEGORY_LAUNCHER); 
          startActivity(i); 

          } 

         } 

        } 

       }); 
+0

당신이 온 클릭 –

+0

에 널 포인터 예외가 코드를 게시 너무 붙어 GetAllApp.java의 83 행을 참조하십시오. –

+0

@K_Anas 업데이트했습니다. –

답변

0

당신이있는 경우 백그라운드에서 앱을 시작한 다음 FLAG_ACTIVITY_NEW_TASKFLAG_FROM_BACKGROUND을 설정해야합니다. 귀하의 텐트 오브젝트에 addFlags 노래 : 난 당신이 우리가 패키지 이름과 나는 당신의 문제가 무엇인지 알아낼 수 없습니다 PackageManager

0

에서 활동 이름을 추출하는 방법을 알고 고려하고

Intent intent25 = new Intent(Intent.ACTION_MAIN).addCategory(
Intent.CATEGORY_LAUNCHER).setClassName("_APP_PACKAGE_NAME", 
"_APP_PACKAGE_NAME.ACTIVITY_NAME").addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 
.addFlags(Intent.FLAG_FROM_BACKGROUND).setComponent(new ComponentName("APP_PACKAGE_NAME", 
"APP_PACKAGE_NAME.ACTIVITY_NAME")); 
getApplicationContext().startActivity(intent25); 

, 당신은 더 많은 붙여 넣기해야 암호!!

하지만 당신은이 같은 문제를 다루고 있기 때문에 당신이

  1. 목록리스트 뷰에 전화 설치된 모든 응용 프로그램은
  2. 가 출시 의도를 호출하여 클릭 된 응용 프로그램을 시작
  3. this 자습서를 볼 수 있습니다

다운로드 코드는