В моем проекте Android я читаю XML-файл, который постоянно обновляется одним скриптом Python. и для обновления данных я постоянно читаю файл xml и всякий раз, когда данные обновляются в файле xml скриптом python, я использовал это в своем приложении.
Но теперь проблема в том, что из-за сценария Python и моего проекта Android, постоянно обращающегося к одному XML-файлу (один ресурс, так что я думаю, что проблема с параллелизмом), требуется так много времени, чтобы получить данные из XML-файла и записать данные в XML-файл через Python. сценарий.
Итак, есть ли какой-нибудь простой способ связи между скриптом Python и приложением для Android, чтобы я избегал использования файла XML и напрямую использовал данные, отправленные мне скриптом Python?
А также это дает мне более быстрое выполнение.
Я попробовал это, (Это мой код Android для доступа к XML-файлу)
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;
}
РЕДАКТИРОВАТЬ: На мой взгляд, у меня есть три варианта,
- Использование трубы
- Socket Communication
- AIDL
Так какой из них лучше и почему?
Если я иду не так, то, пожалуйста, ведите меня. Спасибо