使用服务从listview发送目的
问题描述:
我正在制作一个应用程序,它使用包管理器来查找手机上的所有应用程序并将其显示在列表视图中。目前它只能打开应用程序,但我希望将意图发送给另一个使用服务和广播回放器的课程。这个想法是创建一个快捷方式,只需点击另一个类中的按钮即可启动选定的应用程序。这里是我的代码:使用服务从listview发送目的
protected void onListItemClick(ListView l, View v, int position, long id) {
ResolveInfo launchable=adapter.getItem(position);
ActivityInfo activity=launchable.activityInfo;
ComponentName name=new ComponentName(activity.applicationInfo.packageName,
activity.name);
Intent i=new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(name);
startActivity(i);
} 我希望该服务是由刚刚点击ListView中的一个又一个应用程序改变。我也希望它可以保存在手机上。
有没有办法做到这一点?
答
我通过创建一个保存包名的SharedPrference解决了这个问题。通过使用try-catch来驯服它,我设法在可能的情况下启动应用程序,如果不可以,则不会崩溃。要“删除”选择,我只是将Prefrence更改为“”,或者不是包名。