2013-03-31 23 views
0

我正在开发一个相当大的应用程序,其中有几项活动,see link,我有两个关于基本设计的问题。Android应用程序优化设计,包含多项活动

  1. 什么是关于最佳实践开幕活动,让我不要有相同的类在同一时间,这种开放的多个实例浪费内存?

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

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); 
     } 
    } 
} 

回答

0
  1. 如果你希望尽量减少活动次数,可以考虑使用,而不是片段。

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

希望这会有所帮助。

+0

谢谢!以前从未与碎片或服务合作过,但我会阅读它! –

+0

是的,如果您需要变量/线程尽可能长时间地居住,即使用户已经离开应用程序,您可以将服务设置为在前台运行(并使用通知)。 此外,一般来说,每当您找到符合您需求的答案并且您认为答案已回答您的问题时,您会将其勾选为“已答复”(单击“V”按钮)。 –

+0

我会尽快将它标记为答案:)谢谢! –