"killBackgroundProcesses" 为何杀不死进程?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了"killBackgroundProcesses" 为何杀不死进程?相关的知识,希望对你有一定的参考价值。
@Override public void onReceive(final Context arg0, Intent arg) Log.e("TestPowerConnected", "===========>arg/" + arg.getAction()); if (arg.getAction().equals( "android.intent.action.ACTION_POWER_DISCONNECTED")) Intent intent = new Intent(); intent.setAction("ApiDemosApiDemosApiDemos"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); arg0.startActivity(intent); else if (arg.getAction().equals( "android.intent.action.ACTION_POWER_CONNECTED")) ActivityManager activityManager = (ActivityManager) arg0 .getSystemService(Context.ACTIVITY_SERVICE); try activityManager.killBackgroundProcesses("com.example.android.apis"); Log.e("TestPowerConnected", "stop/"); catch (Exception ex) Log.e("TestPowerConnected", "stop/", ex); 我要做的事情就是监听PWOER CONNECTED 事件,充电时启动APIDEMO,断电时杀死这个进程。。。。用人格担保现在可以启动,不能杀死
参考技术A 以上代码,如果去掉XML中权限声明一行,则在杀的过程中会报缺少权限的错误。 参考技术B List progresses = activityManager .getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo process : progresses) // LogUtils.i(TAG, process.toString()); if (packageName.equals(process.processName)) LogUtils.i("TestPowerConnected", "stopProcess/found," + process.processName); android.os.Process.killProcess(process.pid); 这样的方法同样试过, 一样杀不死 参考技术C 我担心是由于 要杀死的那个包 有还在运行的服务, 就重新弄了一个新的ACTIVITY, 该包只有一个显示TEXT的ACTIVITY, 仍然是只能启动,杀不死 参考技术D 还想知道比如360手机卫士等软件的清理功能是怎么回事,,类似?"message":"请求失败,状态码 500","name":"Error","stack":&q
【中文标题】"message":"请求失败,状态码 500","name":"Error","stack":"错误:请求失败,状态码 500\\n【英文标题】:"message":"Request failed with status code 500","name":"Error","stack":"Error: Request failed with status code 500\n"message":"请求失败,状态码 500","name":"Error","stack":"错误:请求失败,状态码 500\n 【发布时间】:2020-05-29 20:44:32 【问题描述】:我想从这个 link 的开放 API 中获取数据。根据文档,HTTP 方法必须是 POST,Content-Type 必须是“application/graphql”或“application/json”。我使用节点快递服务器来获取数据。但是在运行服务器时出现错误。通过这个 API,我想在浏览器上显示从一个位置到另一个位置的公共交通时间表。
附言。我从来没有获取过 Graphql open api。
const express = require("express");
const app = express();
const port = 3000;
const bodyParser = require("body-parser");
const axios = require("axios");
const morgan = require("morgan");
const cors = require("cors");
app.use(morgan("common"));
app.use(cors());
app.use(bodyParser.urlencoded( extended: true ));
const url = "https://api.digitransit.fi/routing/v1/routers/hsl/index/graphql";
app.get("/hsl/timetables", async (req, res, next) =>
axios
.get(url,
method: "POST",
headers:
Accept: "application/json, text/plain, */*",
"Content-Type": "application/graphql"
)
.then(response => res.send(response.data))
.catch(err =>
console.log("catch error", err), res.status(500).send(err);
);
);
app.listen(port, () => console.log(`Example app listening on port $port!`));
【问题讨论】:
您已将方法设置为POST
,但您仍在调用axios.get
,并且您的请求没有实际的正文。
你检查了我分享的链接吗?我使用了 axios.post 方法并添加了正文,但仍然出现同样的错误。
错误是什么?
"message":"Request failed with status code 500","name":"Error","stack":"Error: Request failed with status code 500
***.com/a/52868182/6124657 (data
包含 query
和 variables
) ...您可以从客户端测试 axios (fe react) ...api.digitransit.fi/graphiql/hsl - 检查开发工具中的标头/网络 - 将标头与您的反应 axios 请求进行比较......然后在节点中使用
【参考方案1】:
如果您在 Axios 文档 here 中注意到,则不需要在您的选项中包含该方法。 (删除此method: "POST",
)。
此外,您需要将请求更改为 .post(
而不是像您一样的 .get(
您还需要在请求中包含正文。这将是您需要弄清楚您想要什么的地方。我不确定您要显示哪些路线,但作为示例,
let data =
routes(name: "10")
gtfsId
shortName
longName
mode
您可以找到很多示例,说明您想要的任何查询的数据应该是什么
要加起来,你会得到这样的东西:
axios.post(url, data,
headers:
Accept: "application/json, text/plain, */*",
"Content-Type": "application/graphql"
)
【讨论】:
不。没有帮助@MindlessRouse。还是同样的问题。 我的数据结构是这样的:let data = plan(from, to, transportModes) itineraries: legs: startTime, endTime, mode, duration, realTime, distance, transitLeg; ;
以上是关于"killBackgroundProcesses" 为何杀不死进程?的主要内容,如果未能解决你的问题,请参考以下文章
"message":"请求失败,状态码 500","name":"Error","stack":&q
"errors":"errors":["detail":"您无权执行此操作。","code":&qu
"Navicat" , "mysql" , "xxx.war" , "tomcat",“JDK","
"error":"message":"服务需要 JSON-RPC","code":0,"origin"