문제

I am making one app in which i get list of install app on phone and then i tap and open those app from my app. But here problem raise in CATEGORY_LAUNCHER it gives null pointer

my logcat output ::

05-30 14:34:33.876: E/Handler(14042): Failed to handle callback; interface not implemented, callback:android.view.View$PerformClick@40e35d70
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)

my code for this :: UPDATE

 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);

                            }

                        }

                    }

                });
도움이 되었습니까?

해결책

if you are starting an app from background then must set FLAG_ACTIVITY_NEW_TASK and FLAG_FROM_BACKGROUND using addFlags in your Intent object as:

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);

i'm considering you known how we extract package name and activity name from PackageManager

다른 팁

I can't figure what is your problem, you have to paste more code!!

but you have to see this tutorial since it deals with the same issue as yours

  1. List all the installed app on the phone on a listview
  2. start the clicked application by invoking its launch intent

download the code it's attached too

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top