Android上的工作灯应用闪屏(Worklight App Splash Screen on An

2019-08-17 18:20发布

我使用的工作灯为一个Android应用程序,

当我尝试添加一个启动画面

public class MyApp extends WLDroidGap {
    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       super.setIntegerProperty("splashscreen", R.drawable.splash);
       super.loadUrl(getWebMainFilePath(),2000);
    }       
}

我看到启动画面,但后来,我有一个黑色的屏幕和应用程序崩溃是准确的,它显示黑屏,当我上的选项按钮点击,它崩溃

当我删除了” 2000"

public class MyApp extends WLDroidGap {
    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       super.setIntegerProperty("splashscreen", R.drawable.splash);
       super.loadUrl(getWebMainFilePath());
    }       
}

我没有看到启动画面,和应用程序的工作原理。

我看到有人谈到,在IBM论坛

而且有很多博客文章谈论splashsccreens为Android与PhoneGap的这里和这里 ,但我没有看到这些帖子解决我的问题

下面是应用程序日志后坠毁:

I/SurfaceFlinger(   93): [SurfaceFlinger] frames:2, duration:2.262000, fps:0.883908
I/InputDispatcher(  246): channel '426b7be0 NavigationBar (server)' ~ finishDispatchCycle - 4.8ms since event, 3.0ms since dispatch, handled=true
E/AndroidRuntime(15615): FATAL EXCEPTION: main
E/AndroidRuntime(15615): java.lang.NullPointerException
E/AndroidRuntime(15615):    at com.worklight.androidgap.WLDroidGap.onPrepareOptionsMenu(WLDroidGap.java:163)
E/AndroidRuntime(15615):    at com.worklight.androidgap.WLDroidGap.onCreateOptionsMenu(WLDroidGap.java:159)
E/AndroidRuntime(15615):    at android.app.Activity.onCreatePanelMenu(Activity.java:2458)
E/AndroidRuntime(15615):    at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:389)
E/AndroidRuntime(15615):    at com.android.internal.policy.impl.PhoneWindow.onKeyDownPanel(PhoneWindow.java:770)
E/AndroidRuntime(15615):    at com.android.internal.policy.impl.PhoneWindow.onKeyDown(PhoneWindow.java:1435)
E/AndroidRuntime(15615):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1824)
E/AndroidRuntime(15615):    at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3492)
E/AndroidRuntime(15615):    at android.view.ViewRootImpl.handleFinishedEvent(ViewRootImpl.java:3464)
E/AndroidRuntime(15615):    at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2601)
E/AndroidRuntime(15615):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(15615):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(15615):    at android.app.ActivityThread.main(ActivityThread.java:4524)
E/AndroidRuntime(15615):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(15615):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(15615):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
E/AndroidRuntime(15615):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
E/AndroidRuntime(15615):    at dalvik.system.NativeStart.main(Native Method)

Answer 1:

如果你在工作灯5.0.5.x试试这个:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.loadUrl(getWebMainFilePath());  // yes, this is an extra invocation
    super.setIntegerProperty("splashscreen", R.drawable.splash);
    super.loadUrl(getWebMainFilePath(), 5000);
}

如果你在工作灯5.0.6.x试试这个:

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    super.setIntegerProperty("splashscreen", R.drawable.splash);
    super.bindBrowser(appView);
    super.loadUrl(getWebMainFilePath(), 5000);
}


Answer 2:

如果使用的是6.0或以上版本,你不需要写任何本地代码。 只要把一个名为“splash.png”种源在Android原生目录(Android设备/原生/ RES /绘制),并删除默认的一个。 启动应用程序时,工作灯就会自动显示PIC作为启动画面。



Answer 3:

我不知道这是否会帮助,但我做了我的启动画面是这样的。 也许你应该试试这个:

    setContentView(R.layout.splash_screen);

    Handler handler = new Handler();

    // 3 seconds later splashscreen will open
    handler.postDelayed(new Runnable() {

        public void run() {


            finish();

            // to pass main screen

            Intent intent = new Intent(SplashScreen.this, AnaMenuActivity.class);
            SplashScreen.this.startActivity(intent);

        }

    }, 3000); 


Answer 4:

你也可以编写自己的JavaScript闪屏。 他们不是一样好本地启动画面,但在我看来不值一提。 他们还工作的X平台。 这里是一个道场的例子。

  1. 在你的HTML创建DIV:

     <div id="splash"></div> 
  2. 对于div元素创建的styleClass:

     #splash { width:100%; height:100%; margin:0; padding:0; background-color: red !important; position:absolute; z-index:999; } 
  3. 隐藏dojo.ready事件后DIV:

     function dojoInit() { require([ "dojo", ...modules... ], function(dojo) { dojo.ready(function() { hideSplash(); }); }); } function hideSplash(){ // Dojo Fade Animation dojo.fadeOut({ node:"splash", onEnd: function(){ dojo.style("splash", "display", "none"); } }).play(); } 


文章来源: Worklight App Splash Screen on Android