How to make a splash screen (screen visible when app starts)?

后端 未结 2 707
没有蜡笔的小新
没有蜡笔的小新 2020-12-13 01:15

I have a simple application, it starts, loads xml feed from the net, you can browse a list of news and then read details for a chosen news item. What I would like to do is h

相关标签:
2条回答
  • 2020-12-13 01:34

    I know this is old but for those of you who are still facing this problem, you can use this simple android-splash library to show your splash screen.

    SplashBuilder
            .with(this, savedInstanceState)
            .show();
    

    You can set SplashTask that will execute while the splash screen is displayed.

    0 讨论(0)
  • 2020-12-13 01:40

    Android suggests you take advantage of using a splash screen when performing lengthy calculations on start up. Here's an excerpt from the Android Developer Website - Designing for Responsiveness:

    "If your application has a time-consuming initial setup phase, consider showing a splash screen or rendering the main view as quickly as possible and filling in the information asynchronously. In either case, you should indicate somehow that progress is being made, lest the user perceive that the application is frozen." -- Android Developer Site

    You can create an activity that shows a Progress Dialog while using an AsyncTask to download the xml feed from the net, parse it, store it to a db (if needed) and then start the Activity that displays the News Feeds. Close the splash Activity by calling finish()

    Here's a skeleton code:

    
    public class SplashScreen extends Activity{
       @Override
       public void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstanceState);
          // set the content view for your splash screen you defined in an xml file
          setContentView(R.layout.splashscreen);
    
          // perform other stuff you need to do
    
          // execute your xml news feed loader
          new AsyncLoadXMLFeed().execute();
    
       }
    
       private class AsyncLoadXMLFeed extends AsyncTask<Void, Void, Void>{
          @Override
          protected void onPreExecute(){
                // show your progress dialog
    
          }
    
          @Override
          protected Void doInBackground(Void... voids){
                // load your xml feed asynchronously
          }
    
          @Override
          protected void onPostExecute(Void params){
                // dismiss your dialog
                // launch your News activity
                Intent intent = new Intent(SplashScreen.this, News.class);
                startActivity(intent);
    
                // close this activity
                finish();
          }
    
       }
    }
    

    hope that helps!

    0 讨论(0)
提交回复
热议问题