2011-10-05 57 views
2

在我的android項目中,我正在讀取一個由一個python腳本不斷更新的xml文件。併爲更新數據我不斷閱讀XML文件,並通過python腳本更新XML文件中的數據,我在我的應用程序中使用它。更好的方式來在python腳本和android應用程序之間進行通信

但現在的問題是,由於python腳本和我的android項目連續訪問一個xml文件(一個資源,所以我認爲併發問題),它需要這麼多時間從xml文件獲取數據並將數據寫入到xml文件python腳本。

那麼,是否有任何簡單的方法來在python腳本和android應用程序之間進行通信,所以我將避免使用xml文件並直接使用python腳本發送給我的數據? 而且它給我更快的執行。

我想這一點,(這是我訪問XML文件的Android代碼)

public void getData() throws Exception { 
try 
{ 
    while(!isStop) 
    { 
     isStop=parseXmlData();   

    } 
} 
catch(Exception e) 
{ 
    e.printStackTrace(); 
} 
    } 



private boolean parseXmlFile(){ 
    //get the factory 
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
    boolean flag=false; 
    try { 

     //Using factory get an instance of document builder 
     DocumentBuilder db = dbf.newDocumentBuilder(); 
     //parse using builder to get DOM representation of the XML file 

     File file=new File("/mnt/sdcard/xmldata.xml"); 
     FileInputStream fin=null; 
     if(file.isFile()) 
      { 
      try 
      { 
      fin=new FileInputStream(file); 
      }catch(Exception e) 
      { 

      } 

      } 
     dom = db.parse(fin); 
     flag = parseDocument(); 

      // from this I am getting last xml value "stop" then it returns  
         true and from while loop I am exited.. 

    }catch(ParserConfigurationException pce) { 
     //pce.printStackTrace(); 
    }catch(SAXException se) { 
     //se.printStackTrace(); 
    }catch(IOException ioe) { 
     //ioe.printStackTrace(); 
    } 
      return flag; 
} 

編輯:在我的腦海裏,我有三個選項,

  1. 使用管道
  2. socket通信
  3. AIDL

那麼哪一個更好,爲什麼?

如果我錯了,請指導我。謝謝

回答

相關問題