问题描述
我知道有人问过这个问题,但我似乎无法解决这个问题。我正在尝试访问静态 AppTask
类非静态公共无效方法 finishAndRemoveTask
。但是我在编译时收到了很多错误,没有成功。
import static android.app.ActivityManager.AppTask;
import static java.lang.System.out;
public class ExitMyApp {
public void exit() {
AppTask.finishAndRemoveTask();
}
}
如果我这样做,我会收到错误 non static method cannot be accessed in static way
。这是可以理解的,因为 finishAndRemoveTask
是 public void 并且尚不存在。所以我实例它:
finishAndRemoveTask finandremove = new AppTask.finishAndRemoveTask();
现在我收到错误 cannot find symbol
。有人能给我一个关于如何使用 finishAndRemoveTask
方法的线索吗?
解决方法
finishAndRemoveTask() 不是静态方法,所以没有实例就不能调用,实例化的方式也不对。您需要获取对 AppTask 的引用,如下所示:
ActivityManager manager =
(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
PackageManager pm = getPackageManager();
for (AppTask task : manager.getAppTasks()) {
//if task is matching your task/activity
task.finishAndRemoveTask();
}