0

我正在开发一个包含多项活动的大型应用程序,请参阅链接,我有 2 个关于基本设计的问题。

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

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

启动.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);
        }
    }
}
4

1 回答 1

0
  1. 如果您希望最小化活动的数量,请考虑使用片段。

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

希望这可以帮助。

于 2013-03-31T10:01:57.413 回答