Android 在列表视图中显示活动(正在运行)应用程序的列表
我正在尝试编写一个显示正在运行的应用程序列表的应用程序。我用活动经理来做这个。运行应用程序时,它显示以下错误。错误日志中的“未处理的事件循环执行”,应用程序被强制关闭 请帮我找出我的错误。 我的代码如下Android 在列表视图中显示活动(正在运行)应用程序的列表,android,Android,我正在尝试编写一个显示正在运行的应用程序列表的应用程序。我用活动经理来做这个。运行应用程序时,它显示以下错误。错误日志中的“未处理的事件循环执行”,应用程序被强制关闭 请帮我找出我的错误。 我的代码如下 public class ActiveApplicationsActivity extends ListActivity { /** Called when the activity is first created. */ @Override public void o
public class ActiveApplicationsActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> l = am.getRunningAppProcesses();
String[] sl = (String[]) l.toArray();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, sl);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
}
}
公共类ActiveApplicationActivity扩展了ListActivity{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ActivityManager am=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
List l=am.getRunningAppProcesses();
字符串[]sl=(字符串[])l.toArray();
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple_list_item_1,sl);
setListAdapter(适配器);
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
字符串项=(字符串)getListAdapter().getItem(位置);
Toast.makeText(此项+选定项),Toast.LENGTH_LONG.show();
}
}
我正在添加logcat信息
02-01 10:52:47.790: D/AndroidRuntime(333): Shutting down VM
02-01 10:52:47.790: W/dalvikvm(333): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-01 10:52:47.811: E/AndroidRuntime(333): FATAL EXCEPTION: main
02-01 10:52:47.811: E/AndroidRuntime(333): java.lang.RuntimeException: Unable to start activity ComponentInfo {com.msat.sd102268.taskmanager.activeapplications/com.msat.sd102268.taskmanager.activeapplications.ActiveApplicationsActivity}: java.lang.ClassCastException: [Ljava.lang.Object;
02-01 10:52:47.811: E/AndroidRuntime(333): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
02-01 10:52:47.811: E/AndroidRuntime(333): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
02-01 10:52:47.811: E/AndroidRuntime(333): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-01 10:52:47.811: E/AndroidRuntime(333): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-01 10:52:47.811: E/AndroidRuntime(333): at android.os.Handler.dispatchMessage(Handler.java:99)
02-01 10:52:47.811: E/AndroidRuntime(333): at android.os.Looper.loop(Looper.java:123)
02-01 10:52:47.811: E/AndroidRuntime(333): at android.app.ActivityThread.main(ActivityThread.java:3683)
02-01 10:52:47.811: E/AndroidRuntime(333): at java.lang.reflect.Method.invokeNative(Native Method)
02-01 10:52:47.811: E/AndroidRuntime(333): at java.lang.reflect.Method.invoke(Method.java:507)
02-01 10:52:47.811: E/AndroidRuntime(333): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-01 10:52:47.811: E/AndroidRuntime(333): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-01 10:52:47.811: E/AndroidRuntime(333): at dalvik.system.NativeStart.main(Native Method)
02-01 10:52:47.811: E/AndroidRuntime(333): Caused by: java.lang.ClassCastException: [Ljava.lang.Object;
02-01 10:52:47.811: E/AndroidRuntime(333): at com.msat.sd102268.taskmanager.activeapplications.ActiveApplicationsActivity.onCreate(ActiveApplicationsActivity.java:23)
02-01 10:52:47.811: E/AndroidRuntime(333): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-01 10:52:47.811: E/AndroidRuntime(333): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
02-01 10:52:47.811: E/AndroidRuntime(333): ... 11 more
02-01 10:52:47.790:D/AndroidRuntime(333):关闭虚拟机
02-01 10:52:47.790:W/dalvikvm(333):threadid=1:线程退出时出现未捕获异常(组=0x40015560)
02-01 10:52:47.811:E/AndroidRuntime(333):致命异常:主
02-01 10:52:47.811:E/AndroidRuntime(333):java.lang.RuntimeException:无法启动活动组件信息{com.msat.sd102268.taskmanager.activeapplications/com.msat.sd102268.taskmanager.activeapplications.ActiveApplicationsActivity}:java.lang.ClassCastException:[Ljava.lang.Object;
02-01 10:52:47.811:E/AndroidRuntime(333):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
02-01 10:52:47.811:E/AndroidRuntime(333):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
02-01 10:52:47.811:E/AndroidRuntime(333):在android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-01 10:52:47.811:E/AndroidRuntime(333):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-01 10:52:47.811:E/AndroidRuntime(333):在android.os.Handler.dispatchMessage(Handler.java:99)上
02-01 10:52:47.811:E/AndroidRuntime(333):在android.os.Looper.loop(Looper.java:123)上
02-01 10:52:47.811:E/AndroidRuntime(333):位于android.app.ActivityThread.main(ActivityThread.java:3683)
02-01 10:52:47.811:E/AndroidRuntime(333):位于java.lang.reflect.Method.Invokenactive(本机方法)
02-01 10:52:47.811:E/AndroidRuntime(333):位于java.lang.reflect.Method.invoke(Method.java:507)
02-01 10:52:47.811:E/AndroidRuntime(333):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-01 10:52:47.811:E/AndroidRuntime(333):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-01 10:52:47.811:E/AndroidRuntime(333):在dalvik.system.NativeStart.main(本机方法)
02-01 10:52:47.811:E/AndroidRuntime(333):由以下原因引起:java.lang.ClassCastException:[Ljava.lang.Object;
02-01 10:52:47.811:E/AndroidRuntime(333):位于com.msat.sd102268.taskmanager.activeapplications.ActiveApplicationsActivity.onCreate(ActiveApplicationsActivity.java:23)
02-01 10:52:47.811:E/AndroidRuntime(333):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-01 10:52:47.811:E/AndroidRuntime(333):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
02-01 10:52:47.811:E/AndroidRuntime(333):…还有11个
您无法将ActivityManager.RunningAppProcessInfo
转换为字符串
试试这个
String[] sl = new String[l.size()];
int i = 0;
for(RunningAppProcessInfo info : l)
sl[i++] = info.getProcessName();// fictional function
或者使用
列表
本身请检查日志猫并检查您在哪一行获得错误….???没有指定行号…我应该如何直接使用ArrayAdapter中的列表?请告诉我。是..你说的是对的..我不能直接使用ArrayAdapter中的列表..我提取了诸如processName、process之类的信息分别使用l.get(i).processName和l.get(i).pid的Id等。然后,我使用自定义ListAdapter显示这些值。感谢您的帮助。您给了我一个如何提取这些值的想法。。!!
String[] sl = new String[l.size()];
int i = 0;
for(RunningAppProcessInfo info : l)
sl[i++] = info.getProcessName();// fictional function