RT,怎么run里面的while函数会退出呢?str_all数组里只有200多个,然后str就成null了,然后就退出了~public class holdon_listener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber){
super.onCallStateChanged(state, incomingNumber);
if((state == TelephonyManager.CALL_STATE_OFFHOOK)&(firstcall)){
mhandler.postDelayed(mrun, 1000);
firstcall = false;
}
else if((state == TelephonyManager.CALL_STATE_IDLE)&(!(firstcall)))
{
firstcall = true;
}
}
}private Handler mhandler = new Handler();
private Runnable mrun = new Runnable(){
@SuppressWarnings("null")
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("--------func start--------"); // 方法启动
try
{
ArrayList<String> cmdLine=new ArrayList<String>(); //设置命令 logcat -d 读取日志
cmdLine.add("logcat");
cmdLine.add("-d");
ArrayList<String> clearLog=new ArrayList<String>(); //设置命令 logcat -c 清除日志
clearLog.add("logcat");
clearLog.add("-c");
Process process=Runtime.getRuntime().exec(cmdLine.toArray(new String[cmdLine.size()])); //捕获日志
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream())); //将捕
String str = "";
String str_all[] = new String [1000];
int ii = 0;
while((str = bufferedReader.readLine())!=null)
{
Runtime.getRuntime().exec(clearLog.toArray(new String[clearLog.size()]));
str_all[ii] = str;
if(str==null)
{
System.out.println("-- is null --");
}
ii++;
}
ii = ii +1;
} catch (IOException e)
{
e.printStackTrace();
System.out.println("--------str wrong--------");
}
System.out.println("--------func end--------");
}
@Override
public void onCallStateChanged(int state, String incomingNumber){
super.onCallStateChanged(state, incomingNumber);
if((state == TelephonyManager.CALL_STATE_OFFHOOK)&(firstcall)){
mhandler.postDelayed(mrun, 1000);
firstcall = false;
}
else if((state == TelephonyManager.CALL_STATE_IDLE)&(!(firstcall)))
{
firstcall = true;
}
}
}private Handler mhandler = new Handler();
private Runnable mrun = new Runnable(){
@SuppressWarnings("null")
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("--------func start--------"); // 方法启动
try
{
ArrayList<String> cmdLine=new ArrayList<String>(); //设置命令 logcat -d 读取日志
cmdLine.add("logcat");
cmdLine.add("-d");
ArrayList<String> clearLog=new ArrayList<String>(); //设置命令 logcat -c 清除日志
clearLog.add("logcat");
clearLog.add("-c");
Process process=Runtime.getRuntime().exec(cmdLine.toArray(new String[cmdLine.size()])); //捕获日志
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream())); //将捕
String str = "";
String str_all[] = new String [1000];
int ii = 0;
while((str = bufferedReader.readLine())!=null)
{
Runtime.getRuntime().exec(clearLog.toArray(new String[clearLog.size()]));
str_all[ii] = str;
if(str==null)
{
System.out.println("-- is null --");
}
ii++;
}
ii = ii +1;
} catch (IOException e)
{
e.printStackTrace();
System.out.println("--------str wrong--------");
}
System.out.println("--------func end--------");
}
解决方案 »
- android 4.0以上源码 gallery2 怎么取得系统和sd卡的图片资源及如何保存的
- 更新eclipse后遇到一个问题
- 有人开发出android 手机关机能响的闹钟了吗?
- Android2.3帐户问题?
- 运行程序出错奇怪错误,困扰了好久!请大家来帮着看看~~
- openfire配置数据库报错,log显示connection refused怎么解决
- Android 中的 Button 按钮 点击后反映慢 甚至没有反映 点击几次才成功
- 让用户扫描二维码后直接下载app
- 如何实时查询Sqlite插入的数据?
- 不能指望问答了,希望大牛能没事看看论坛吧! Android ndk 的问题:“lopen failed: cannot locate symbol "”
- tabhost图片问题
- NOTE: attach of thread 'Binder Thread #3' 错误
public class holdon_listener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber){
super.onCallStateChanged(state, incomingNumber);
if((state == TelephonyManager.CALL_STATE_OFFHOOK)&(firstcall)){
mhandler.postDelayed(mrun, 1000);
firstcall = false;
}
else if((state == TelephonyManager.CALL_STATE_IDLE)&(!(firstcall)))
{
firstcall = true;
}
}
}调用方法有问题?