Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 错误:类型ActivityManager的方法xxx未定义_Android_Android Activity - Fatal编程技术网

Android 错误:类型ActivityManager的方法xxx未定义

Android 错误:类型ActivityManager的方法xxx未定义,android,android-activity,Android,Android Activity,我得到以下错误: 错误:类型ActivityManager的KillBackgroundProcess(字符串)方法未定义 现在我完全确定ActivityManager包含该方法 这是代码,请帮我找出哪里出错了 package com.robosoft.killswitch; import java.util.List; import android.app.ActivityManager; import android.app.ListActivity; import android.ap

我得到以下错误:

错误:类型ActivityManager的KillBackgroundProcess(字符串)方法未定义

现在我完全确定ActivityManager包含该方法

这是代码,请帮我找出哪里出错了

package com.robosoft.killswitch;

import java.util.List;

import android.app.ActivityManager;
import android.app.ListActivity;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;

public class KillSwitch extends ListActivity {
/** Called when the activity is first created. */
private RunningApplicationAdapter runningApplicationAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
    final List<ActivityManager.RunningAppProcessInfo> RunningApp = am.getRunningAppProcesses();        
    runningApplicationAdapter = new RunningApplicationAdapter(this, RunningApp);
    //setContentView(R.layout.main);

    setListAdapter(runningApplicationAdapter);
    ListView lv = getListView();
    lv.setTextFilterEnabled(true);
    lv.setOnItemClickListener(new OnItemClickListener()
    {  
        public void onItemClick(AdapterView<?> parent, View v, int pos, long id) {
            RunningAppProcessInfo x = RunningApp.get(pos);
            String y = x.processName;
            am.killBackgroundProcesses(x.processName); //Error Here!
    }
    });
}
}
package com.robosoft.killswitch;
导入java.util.List;
导入android.app.ActivityManager;
导入android.app.ListActivity;
导入android.app.ActivityManager.RunningAppProcessInfo;
导入android.content.Context;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ListView;
导入android.widget.AdapterView.OnItemClickListener;
公共类KillSwitch扩展ListActivity{
/**在首次创建活动时调用*/
专用运行应用程序适配器运行应用程序适配器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ActivityManager am=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
最终列表RunningApp=am.getrunningappprocesss();
runningApplicationAdapter=新的runningApplicationAdapter(此为RunningApp);
//setContentView(R.layout.main);
setListAdapter(运行应用程序适配器);
ListView lv=getListView();
lv.setTextFilterEnabled(真);
lv.setOnItemClickListener(新的OnItemClickListener()
{  
public void onItemClick(AdapterView父视图、视图v、整数位置、长id){
RunningAppProcessInfo x=RunningApp.get(pos);
字符串y=x.processName;
am.killbackgroundprocesss(x.processName);//此处出错!
}
});
}
}

我看到的唯一原因是您正在使用的仿真器(或设备)与用于开发的仿真器(或设备)之间的API级别可能不同。i、 e.您正在使用API级别8在API级别低于8(可能是API 7)的emulator AVD(或设备)上开发和部署它

API级别7没有此方法


它仅在API级别8中可用。我看到的唯一原因是,您正在使用的模拟器(或设备)与用于开发的模拟器(或设备)之间的API级别可能不同。i、 e.您正在使用API级别8在API级别低于8(可能是API 7)的emulator AVD(或设备)上开发和部署它

API级别7没有此方法


它仅在API级别8中可用这是您唯一的解决方案

private void initializeKillMethod() {
            try {
                    this.killMethod = ActivityManager.class.getMethod("killBackgroundProcesses", String.class);
            } catch (SecurityException e) {
                    e.printStackTrace();
            } catch (NoSuchMethodException e) {
                    e.printStackTrace();
            }

            if (this.killMethod != null) {
                    return;
            }

            try {
                    this.killMethod = ActivityManager.class.getMethod("restartPackage", String.class);
            } catch (SecurityException e) {
                    e.printStackTrace();
            } catch (NoSuchMethodException e) {
                    e.printStackTrace();
            }
    }
编辑:为了记录。。。我讨厌StackOverflow上的代码格式化程序,因为它太糟糕了!一半的时间,当你发布代码时,它会杀死所有的格式

这是一个按钮单击侦听器的解决方案。
这是您唯一的解决方案

private void initializeKillMethod() {
            try {
                    this.killMethod = ActivityManager.class.getMethod("killBackgroundProcesses", String.class);
            } catch (SecurityException e) {
                    e.printStackTrace();
            } catch (NoSuchMethodException e) {
                    e.printStackTrace();
            }

            if (this.killMethod != null) {
                    return;
            }

            try {
                    this.killMethod = ActivityManager.class.getMethod("restartPackage", String.class);
            } catch (SecurityException e) {
                    e.printStackTrace();
            } catch (NoSuchMethodException e) {
                    e.printStackTrace();
            }
    }
编辑:为了记录。。。我讨厌StackOverflow上的代码格式化程序,因为它太糟糕了!一半的时间,当你发布代码时,它会杀死所有的格式

这是一个按钮单击侦听器的解决方案。

是的,我刚刚知道!谢谢,你知道在API级别4上这可能是什么吗?@Shouvik restartPackage似乎是最接近的一个是的,我刚刚知道!谢谢,你知道在API级别4上有什么与此等效吗?@Shouvik restartPackage似乎是最接近的一个,它适用于API级别8以下的设备和无根设备?嘿,谢谢你的代码片段,但我不知道如何用onclicklistener实现它?我是将位置解析为另一个活动并实现此方法还是。。。???谢谢你的帮助!嘿,我试着实现你的解决方案,但我需要一些帮助来理解你到底想做什么!我有一个在主活动中运行的进程列表。所以现在我必须添加一个按钮到?还有,我们到底是如何扼杀这里的活动的?我打算做的是,单击列表中的进程名称,应用程序将被终止,但在您的情况下,有一个按钮可以这样做!那么我应该实现一个选择项目的视图吗?谢谢你的帮助…你可以想怎么做就怎么做。。。它可以从任何类型的单击侦听器中使用。。。它不一定是一个按钮。。。我只是把它作为如何调用函数(invoke)的示例。您还可以对列表中的项目使用长时间单击侦听器。。。无论什么关于如何使用列表上的侦听器,web上有很多示例。这适用于API级别8以下的设备和无根设备?嘿,谢谢你的代码片段,但我不知道如何使用onclicklistener实现它?我是将位置解析为另一个活动并实现此方法还是。。。???谢谢你的帮助!嘿,我试着实现你的解决方案,但我需要一些帮助来理解你到底想做什么!我有一个在主活动中运行的进程列表。所以现在我必须添加一个按钮到?还有,我们到底是如何扼杀这里的活动的?我打算做的是,单击列表中的进程名称,应用程序将被终止,但在您的情况下,有一个按钮可以这样做!那么我应该实现一个选择项目的视图吗?谢谢你的帮助…你可以想怎么做就怎么做。。。它可以从任何类型的单击侦听器中使用。。。它不一定是一个按钮。。。我只是把它作为如何调用函数(invoke)的示例。您还可以对列表中的项目使用长时间单击侦听器。。。无论什么关于如何与列表上的侦听器协作,web上有很多示例。