从Log中监听事件

1.首先你要在AndroidManifest.xml添加一项读取系统Log的权限
<!– 允许程序读取系统日志 –>
<uses-permission android:name=”android.permission.READ_LOGS” />
2.
/**
* “logcat”不用说了吧,我们就是要监听它 
* “ActivityManager” 表示监听的Tag 这里以上面点击按钮输出的LOG信息为例。
* “I”表示监听的Log类型,当然这里还可以写其它类型 。VERBOSE(v) 、DEBUG(d)、 INFO(i)、 WARN(w)、 ERROR(e), 不过须要与监听的与Tag一一对称才可以。
* “*:s”表示监听所有的信息,这里表示只要tag是ActivityManager ,Logcat类型为i 的 所有Log都会被获取到。
 * 点击Home时会触发OnPause、onStop但是在某些手机上可能触发onStop延迟或者不触发
*/
new Thread(new Runnable()
{
@Override
public void run()
{
Process logcatProcess = null;
BufferedReader bufferedReader = null;
try
{
/** 获取系统logcat日志信息 */
logcatProcess = Runtime.getRuntime().exec(new String[] {“logcat”, “ActivityManager:I *:S”});
bufferedReader = new BufferedReader(new InputStreamReader(logcatProcess.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null)
{
if (line.indexOf(“cat=[android.intent.category.HOME]“) > 0)
{
/** 这里可以处理你对点击Home的操作哦 我这里是完全退出应用*/
Session.exit();
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

}).start();


手机点击HOme的日志是:
Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0×10200000 cmp=com.dianxinos.dxhome/com.dianxinos.launcher2.Launcher } from pid 1277
模拟器是:
Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0×10200000 cmp=com.android.launcher/com.android.launcher2.Launcher }
他们的
Level:I
PID:59
Application:system process
Tag:ActivityManager
他们都有一个共同点都有:cat=[android.intent.category.HOME]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值