有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java调用时*startActivity*我的程序未运行

在我的项目中,我使用listview(设备中安装的程序列表),在listview中,我为每一行设置了按钮。当用户单击按钮时,我想删除程序。现在在arrayadapter(自定义列表)中,我有(button.setOnClickListener)当用户单击按钮时,我的未安装代码必须运行,请帮助我

我的应用程序类:

 public class UninstallApp extends ArrayAdapter<String>{
        public BlackListAdapter(Context context,int layoutResourceId, ArrayList<String> appsName,
        ArrayList<String> appsPackageName,ArrayList<Drawable> appsIcon) {
    super(context, layoutResourceId, appsName);

。。。 . . . }

 @Override
public View getView(final int position, View convertView, final ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                   btnDell.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

        Uri packageUri =Uri.parse("package:com.mk88.rootdetection");

            Intent uninstallIntent =
                 new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageUri);
                  //  where runing startactivity ?????
            //startActivity(uninstallIntent);

        }
    });

    return rowView;
}


 } 
}

但当点击按钮时,我的程序停止了。请帮帮我。tnx


共 (2) 个答案

  1. # 1 楼答案

    永远不要实例化活动类

    你有

      UninstallApp uninstallApp = new UninstallApp();
    

    UninstallApp是一个活动类

    Can i Create the object of a activity in other class?

    活动在清单中声明,并具有生命周期

    可以将UninstallApp设为实用类(普通java类)。如果需要上下文,可以将其传递给类的构造函数并使用上下文startActivity是活动类的一种方法

  2. # 2 楼答案

    我认为卸载应用程序不需要其他活动。此外,您不应该实例化活动。在主活动或Utility类中使用以下代码

     Uri packageURI = Uri.parse("package:" +getPackageName());
     Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);      
     startActivity(uninstallIntent);
    

    希望有帮助