iOS AppDelegate等效于Android

Sun*_*day 15 android uiapplicationdelegate ios

我有一个简单的Android应用程序与一个活动.此活动下载一个小型XML文件并将内容显示给用户.目前,我在Activity的onStart方法中开始下载.

我的理解是,当设备方向改变时,活动会被销毁并重新创建.因此,当用户轮换我的应用程序时,将再次下载XML文件.我希望该应用程序只下载一次文件,因为它每天更改不会超过几次.因此,我希望保留下载的数据,以便在设备方向发生变化时重新使用本地数据.Android中保留数据的理想对象是什么?

在iOS上我会使用它AppDelegate来下载一次数据并保留它.然后,显示数据的viewController只需重新使用本地数据,如果它被销毁并重新创建.

Ale*_*xey 27

您必须创建自己的Application子类并在AndroidManifest.xml中指定它.之后,将创建此类的新实例,并可在整个应用程序中访问该实例.

例:

的Manifest.xml

<application name="YourApp"> 
Run Code Online (Sandbox Code Playgroud)

YourApp.java

class YourApp extends Application {
    private String yourState;

    public void setState(String state){
        yourState = state;
    }
    public String getState(){
        return yourState;
    }
 }
Run Code Online (Sandbox Code Playgroud)

YourActivity.java

 class YourActivity extends Activity {
    @Override
    public void onCreate(Bundle bundle){
        YourApp appState = ((YourApp)getApplicationContext());// you can use getApplication() as well in the activity
        String state = appState.getState();
    }
 }
Run Code Online (Sandbox Code Playgroud)

有关应用的更多信息


lee*_*phi 0

我假设您已经看过此页面:

http://developer.android.com/guide/topics/data/data-storage.html#pref

根据 XML 文件中的数据类型(如果数据相当简单),使用“共享首选项”可能是一种简单的方法。您可以在需要时从 XML 重写新数据,同时仍然能够从共享首选项中使用它。