Java 如何在每次应用启动时刷新新数据?

Java 如何在每次应用启动时刷新新数据?,java,android,Java,Android,每次我启动安卓应用程序时,我都很难理解安卓应用程序是如何获取数据或刷新数据的 我有数据,它每分钟都在更新,这意味着它会被更改,但我没有看到它在每次启动应用程序时都会更新,只是随机更新数据 我累了,还是不工作 OnResume(); 这是我的代码。 package com.zv.android; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import

每次我启动安卓应用程序时,我都很难理解安卓应用程序是如何获取数据或刷新数据的

我有数据,它每分钟都在更新,这意味着它会被更改,但我没有看到它在每次启动应用程序时都会更新,只是随机更新数据

我累了,还是不工作

OnResume();
这是我的代码。

package com.zv.android;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class ZipActivity extends Activity {

    TextView textMsg, textPrompt;
    final String textSource = "https://docs.google.com/spreadsheet/pub?key=0AqSBI1OogE84dDJyN0tyNHJENkNyYUgyczVLX0RMY3c&single=true&gid=0&range=a2%3Aa26&output=txt";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        textPrompt = (TextView)findViewById(R.id.textprompt);
        textMsg = (TextView)findViewById(R.id.textmsg);

        textPrompt.setText("Wait...");

        URL CPE;
        try {
            CPE = new URL(textSource);
            BufferedReader bufferReader = new BufferedReader(new InputStreamReader(CPE.openStream()));
            String StringBuffer;
            String stringText = "";
            while ((StringBuffer = bufferReader.readLine()) != null) {
                stringText += StringBuffer + "\n"; ;
            }
            bufferReader.close();
            textMsg.setText(stringText);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            textMsg.setText(e.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            textMsg.setText(e.toString());
        }
        textPrompt.setText("Finished!");        
    }

}

您可以覆盖应用程序中的应用程序类。在清单文件中定义这个。每次你的应用程序启动时——不管它是如何启动的、用户点击的、广播意图的、服务的——你的应用程序类都会得到一个关于创建的消息


我认为您需要了解应用程序的生命周期。android上的应用程序不会因为关闭而消亡。如果希望它在每次foregunded时更新,则必须在活动中重写onstart()方法。

您可以在应用程序中重写Application类。在清单文件中定义这个。每次你的应用程序启动时——不管它是如何启动的、用户点击的、广播意图的、服务的——你的应用程序类都会得到一个关于创建的消息


我认为您需要了解应用程序的生命周期。android上的应用程序不会因为关闭而消亡。如果希望它在每次foregunded时更新,则必须在活动中重写onstart()方法。

每次启动活动时,都会执行onCreate方法,这意味着该方法中的所有代码都将再次执行。如果您正在获取的内容未更新,可能是因为未从源更新。但是,刷新只会在您开始活动时发生

您可以检查此答案,它可能会帮助您:

每次启动活动时,都会执行onCreate方法,这意味着该方法中的所有代码都将再次执行。如果您正在获取的内容未更新,可能是因为未从源更新。但是,刷新只会在您开始活动时发生

您可以检查此答案,它可能会帮助您:

活动是Android应用程序的构建块(更好,因为现在片段API代表基本组件)。它有一个所谓的,你可以钩住的。你的名字是:

  • onCreate()
    ,在首次创建活动时由框架调用。可能,此活动对象可以永远保持,即使其他应用程序占据前台,两周后用户在启动器中触摸您的应用程序图标:它可能仍然是同一个活动对象。事实上,活动的寿命并不长,但你会明白这一点

  • onResume()
    ,在
    onPause()
    之后调用,当活动失去前景时调用该函数(请注意,这与活动的内容可见性无关)。因为
    onResume()
    总是在
    onPause()
    之后调用,所以可以保证每次用户执行其他操作时都会调用它,然后切换到您的活动,这似乎只是您的用例

注意区别:用户安装你的应用程序,触摸启动器中的图标,这会激发一个意图,系统检测到周围没有活动,并创建一个新实例。然后调用onResume(),最后将活动带到前台。接下来,您将收到一条短信通知,切换到messanger,然后返回到以前的活动,并再次调用
onResume()
(但不是
onCreate


因此,如果您想使用生命周期挂钩来刷新活动的内容,
onResume()。但是请注意,一旦读取URL内容,内容可能会更改,并且如果活动仍在前台,则不会通知客户端。因此,您可能希望使用某种服务器事件(推送),例如(或websocket,或普通套接字,或您喜欢的任何东西)。

活动是Android应用程序的构建块(更好的是,它是,因为现在片段API代表基本组件)。它有一个所谓的,你可以钩住的。你的名字是:

  • onCreate()
    ,在首次创建活动时由框架调用。可能,此活动对象可以永远保持,即使其他应用程序占据前台,两周后用户在启动器中触摸您的应用程序图标:它可能仍然是同一个活动对象。事实上,活动的寿命并不长,但你会明白这一点

  • onResume()
    ,在
    onPause()
    之后调用,当活动失去前景时调用该函数(请注意,这与活动的内容可见性无关)。因为
    onResume()
    总是在
    onPause()
    之后调用,所以可以保证每次用户执行其他操作时都会调用它,然后切换到您的活动,这似乎只是您的用例

注意区别:用户安装你的应用程序,触摸启动器中的图标,这会激发一个意图,系统检测到周围没有活动,并创建一个新实例。然后调用onResume(),最后将活动带到前台。接下来,您将收到一条短信通知,切换到messanger,然后返回到以前的活动,并再次调用
onResume()
(但不是
onCreate

因此,如果您想使用生命周期挂钩来刷新活动的内容,
onResume()。但是请注意,一旦读取URL内容,内容可能会更改,并且如果活动仍在前台,则不会通知客户端。因此,您可能希望使用某种服务器事件(推送),如(或websocket,或