Android应用程序优化设计与几个活动

时间:2013-03-31 09:08:08

标签: java android multithreading android-activity uart

我正在开发一个包含多项活动的相当大的应用程序,see link,我对基础设计有两个问题。

  1. 关于开放活动的最佳做法是什么,以便我不会因同时打开同一类的多个实例而浪费内存?

  2. 应用必须通过UART接口不断接收USB数据,并且应该以某种方式将此数据转发到焦点活动。现在,start活动通过处理程序接收数据。如果只有一个活动需要USB数据,这将有效。我该怎么做?

  3. Start.java

    final Handler handler = new Handler()
    {
        @Override 
        public void handleMessage(Message msg)
        {
            if(actualNumBytes[0] != 0x00)
            {
                info.append(String.copyValueOf(readBuffer, 0, actualNumBytes[0]));
            }
        }
    };
    

    handler_thread.java

    /*usb input data handler*/
    private class handler_thread extends Thread 
    {
        Handler mHandler;
    
        handler_thread(Handler h ){
            mHandler = h;
        }
    
        public void run()
        {
            while(true)
            {
                Message msg = mHandler.obtainMessage();
                try{
                    Thread.sleep(50);
                } 
                catch(InterruptedException e){}
    
                status = uartInterface.ReadData((byte)64, readBuffer, actualNumBytes);
                mHandler.sendMessage(msg);
            }
        }
    }
    

1 个答案:

答案 0 :(得分:0)

  1. 如果您希望尽量减少活动数量,请考虑使用片段。

  2. 如果您有一个需要由当前活动处理的全局变量/事件/线程,请将其放入服务中,并让活动与之通信(连接启动/恢复,暂停时断开/停止)。

  3. 希望这有帮助。