是否有一种阻止活动发布的好方法?我想建立一个白名单或黑名单的应用程序,然后阻止这些实例启动。
一个可能的解决方案是每隔一段时间轮询一次正在运行的任务并将其关闭,但这似乎可能会耗费大量电池。
答案 0 :(得分:3)
抱歉,SDK不支持此功能。
答案 1 :(得分:2)
好的,所以这并不算是“好的方式”,如果你的电池不是更多,那么很可能会耗尽,但是与你的投票方法一致:
您可以创建一个监控日志猫的服务(http://www.helloandroid.com/tutorials/reading-logs-programatically) 需要在清单中获得许可:
<uses-permission android:name="android.permission.READ_LOGS" />
然后在你的服务中像(非常粗糙):
private void readLogAndKill(){
try {
Process process = Runtime.getRuntime().exec("logcat -d");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
if (line.contains("Starting Activity")){
if(line.contains("com.twitter.android"){
//kill twitter for example
}
}
}
} catch (IOException e) {
}
}
可能会有一些事情要抓住“启动活动”事件 - 或者在您为这些消息阅读时过滤日志。