在我的项目中我使用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
答案 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);
希望它有所帮助。