当调用* startActivity *我的程序没有运行

时间:2014-06-24 08:23:03

标签: java android

在我的项目中我使用listview(安装在设备中的程序列表)和里面的listview我有每行的按钮。当用户点击按钮我想删除程序。现在在arrayadapter(自定义列表)我有(button.setOnClickListener)当用户点击按钮我的unintall代码必须运行请帮助我

我的uninstallApp类:

 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 个答案:

答案 0 :(得分:2)

你永远不应该实例化Activity类

你有

  UninstallApp uninstallApp = new UninstallApp();

UninstallApp是一个Activity类。

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

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

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

答案 1 :(得分:0)

我认为您不需要另外的活动来卸载应用程序。此外,您不应该实例化Activity。在主要活动或Utility班级

中使用以下代码
 Uri packageURI = Uri.parse("package:" +getPackageName());
 Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);      
 startActivity(uninstallIntent);

希望它有所帮助。