Android 强制停止我的应用程序

Android 强制停止我的应用程序,android,performance,background,Android,Performance,Background,我创建了一个应用程序,在后台将位置提要发送到服务器,我需要一个按钮(控件)来强制停止应用程序或终止后台进程。 我如何实现它 后台执行功能仅用于服务,不用于服务 public class SendRequest extends AsyncTask<String, Void, String> { protected String doInBackground(String... arg0) { try { URL url = new URL(GlobalVa

我创建了一个应用程序,在后台将位置提要发送到服务器,我需要一个按钮(控件)来强制停止应用程序或终止后台进程。 我如何实现它

后台执行功能仅用于服务,不用于服务

public class SendRequest extends AsyncTask<String, Void, String> {
 protected String doInBackground(String... arg0) {

        try {
     URL url = new URL(GlobalVariables.URL_REGISTRATION_AND_UPDATION);
//convert string to jsonoblects
            JSONObject postDataParams = new JSONObject();

//add the strings needed to send("first part is for string name","second part for content")
             postDataParams.put(GlobalVariables.PARAM_LATTITUDE, latitude);
           postDataParams.put(GlobalVariables.PARAM_LONGITUDE, longitude);
}
}

公共类SendRequest扩展了异步任务{
受保护的字符串doInBackground(字符串…arg0){
试一试{
URL=新URL(GlobalVariables.URL\u注册和更新);
//将字符串转换为JSONoblets
JSONObject postDataParams=新的JSONObject();
//添加需要发送的字符串(“第一部分表示字符串名称”,“第二部分表示内容”)
postDataParams.put(全局变量.PARAM_latitude,纬度);
postDataParams.put(GlobalVariables.PARAM_LONGITUDE,LONGITUDE);
}
}
取消异步任务

你有一个执行很长操作的“单行命令”,你做不了多少

最好的解决方法是使用您自己的cancelFlag布尔值。然后您可以在postExecute中测试此cancelFlag,以决定如何处理结果


要停止后台服务,请调用此方法

mContext.stopService(new Intent(mContext, MyBackgroundService.class))

要停止应用程序,您可以使用该方法,该方法似乎非常接近于按名称和javadoc描述关闭所有相关活动:

这个。finishafinity()

完成此活动以及当前任务中紧挨着它的具有相同关联性的所有活动。当应用程序可以启动到另一个任务时(例如,从其理解的内容类型的“操作”视图),通常使用此操作并且用户已使用向上导航从当前任务切换到自己的任务。在这种情况下,如果用户已向下导航到第二个应用程序的任何其他活动,则所有这些活动都应作为任务切换的一部分从原始任务中移除

请注意,此完成不允许您将结果传递到上一个活动,如果您尝试这样做,将引发异常


如果您真的想强制停止应用程序,就像在设备的应用程序信息中一样,请使用以下内容:


我需要集中停止我的应用程序。从审阅队列:我可以请求您在您的答案周围添加更多上下文吗。纯代码答案很难理解。如果您可以在帖子中添加更多信息,这将有助于询问者和未来的读者。此方法是否等于强制停止?是的,请尝试itpublic class SendRequest extends Async任务我不使用服务然后再分享一些,我不知道你的代码是什么,所以我只是给你一些建议来实现抱歉,我添加了一个部分
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());    
os.writeBytes("adb shell" + "\n");    
os.flush();    
os.writeBytes("am force-stop com.YOUR.PACKAGENAME" + "\n");   
os.flush();
android.os.Process.killProcess(android.os.Process.myPid());