android acitivty 刷新频率 疑问

在做android的消息队列时将刷新的频率提高到每秒1000次后activity刷新不过来.

测试使用的机器是onda VX610W豪华版

下面是测试代码

package my.test;

import java.util.Random;
import java.util.concurrent.ArrayBlockingQueue;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;

public class AndroidTestCodeActivity extends Activity {
 private String TAG = "Test";
 private TextView tv1;
 private TextView tv2;
 private Handler handler;
 private final int PULL = 0;
 private final int PUSH = 1;
 
 ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(100);
 
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        tv1 = (TextView)findViewById(R.id.textView1);
        tv2 = (TextView)findViewById(R.id.textView2);
        
        //use main activity looper
  handler = new Handler(Looper.myLooper()) {
   public void handleMessage(Message msg) {
    Log.v(TAG, "Handle message");
    switch (msg.what) {
    case PULL:
     Log.v(TAG, "PULL msg value " + msg.arg1);
     tv1.setText("PULL " + String.valueOf(msg.arg1) + " " + String.valueOf(msg.arg2));
     break;
    case PUSH:
     Log.v(TAG, "PUSH msg value " + msg.arg1);
     tv2.setText("PUSH " + String.valueOf(msg.arg1) + " " + String.valueOf(msg.arg2));
     break;
    default:
     break;
    }
   }
  };
        
  new Thread(new Runnable() {
   public void run() {
    try {
     while (true) {
      int arg = new Random().nextInt(100);
      queue.put(arg);
      
      Message msg = handler.obtainMessage();
      msg.arg1 = arg;
      msg.arg2 = queue.size();
      msg.what = PUSH;
      handler.sendMessage(msg);
      Thread.sleep(1);
     }
    } catch (InterruptedException e1) {
     // TODO Auto-generated catch block
     e1.printStackTrace();
    }
   }
  }).start();
        
  new Thread(new Runnable() {
   public void run() {
    try {
     while (true) {
      Integer m_take;
      m_take = queue.take();

      Message msg = handler.obtainMessage();
      msg.arg1 = m_take;
      msg.arg2 = queue.size();
      msg.what = PULL;
      handler.sendMessage(msg);
      Thread.sleep(1);
     }
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }).start();
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值