如何在创建应用程序时运行函数

wribegjk  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(374)

我正在尝试运行此函数:

public static void main(String[] args) 
            throws ParserConfigurationException, SAXException, 
            IOException, XPathExpressionException {
                DocumentBuilderFactory domFactory = 
                DocumentBuilderFactory.newInstance();
                domFactory.setNamespaceAware(true); 
                DocumentBuilder builder = domFactory.newDocumentBuilder();
                Document doc = builder.parse("res/raw/test.xml");
                XPath xpath = XPathFactory.newInstance().newXPath();
                // XPath Query for showing all nodes value
                XPathExpression expr = xpath.compile("//station/*/text()");

                Object result = expr.evaluate(doc, XPathConstants.NODESET);
                NodeList nodes = (NodeList) result;
                for (int i = 0; i < nodes.getLength(); i++) {
                    System.out.println("zoekdit");
                    System.out.println(nodes.item(i).getNodeValue()); 
                }
             }

所以我把它放在课堂上:mainactivity。但是当我在我的日志里搜索的时候,我找不到“zoekdit”。。。

2mbi3lxu

2mbi3lxu1#

android不是这样工作的,一个名为main的方法不会被自动调用。
对于类似的情况,您应该在asynctask或intentservice中运行它,这样它就不会占用ui线程。谷歌如何使用异步任务。
您可以从活动内部运行asynctask。在onresume方法中,或者在按钮的onclicklistener或类似的东西中。
如果确实希望在应用程序启动时运行代码,可以从应用程序类的oncreate启动intentservice。您需要创建这个应用程序类。从应用程序扩展,并在清单中指向应用程序android:name parameter 创建的myapplication类的类路径。
例如

<!-- App manifest-->
<Application
   android:icon="@drawable/ic_launcher"
   android:name="com.myapp.myapplication"
>

<!-- declare activities-->
<Activity/>
</Application>

相关问题