【问题标题】:how to set some work in background when splash screen displayed显示启动画面时如何在后台设置一些工作
【发布时间】:2016-07-16 06:53:11
【问题描述】:

我想做一些工作,比如在显示初始屏幕时填充哈希映射。但我不知道我是怎么做到的

我认为一种方法是创建新线程?

我的启动画面代码

public class SplashActivity extends AppCompatActivity {

    long Delay = 2000;
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        Window window = getWindow();
        window.setFormat(PixelFormat.RGBA_8888);
    }

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splashactivity);
        StartAnimations();
        Timer RunSplash = new Timer();

        TimerTask ShowSplash = new TimerTask() {
            @Override
            public void run() {
                finish();
                Intent myIntent = new Intent(SplashActivity.this,LoginEnquiryTab.class);
                overridePendingTransition(R.anim.pull_in_left, R.anim.push_out_left);
                startActivity(myIntent);
            }
        };

        RunSplash.schedule(ShowSplash,Delay);
    }

【问题讨论】:

  • 你想让 2 用 hashmap 做什么?
  • 在 splashactivity 中用键和值填充 hasmap,在某些操作中我需要该信息..所以我访问了它

标签: android backgroundworker


【解决方案1】:

不要为启动画面创建单独的活动。 您的启动画面应仅在开始活动时显示。

styles.xml

<style name="AppTheme.Splash" parent="AppTheme">
    <item name="android:windowBackground">@mipmap/ic_launcher</item>
</style>

AndroidManifest.xml

<activity android:name="com.architjn.example.ui.activity.MainActivity"
    android:theme="@style/AppTheme.Splash">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

MainActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    //do your work here while splash shows..
    setTheme(R.style.AppTheme);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

Google 也使用上述方式。

【讨论】:

  • Thanx architjn for your rpl..我如何在启动画面后打开我的下一个活动...我如何设置启动画面的时间
  • @Varshilshah 不要创建 SplashScreen Activity,不要使用计时器,您只需要使用 MainActivity 作为您的第二个活动,并且可以在 MainActivity 中的 settheme 之前完成在启动画面显示时您想要做的事情
  • 我收到错误错误:(10, 5) 找不到与给定名称匹配的资源:attr 'windowBackground'。我认为这个属性可以从 21 Api 获得
  • 嘿architjn ..您的解决方案效果很好,但我想显示启动画面几秒钟..我是怎么做到的...目前图像未显示
  • 使用处理程序进行延迟并将 3 行从 onCreate() 移动到 run()
猜你喜欢
  • 2023-03-27
  • 2018-07-16
  • 2013-02-02
  • 2014-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 2023-04-06
相关资源
最近更新 更多