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