java-仅在从启动器启动应用程序时显示启动屏幕

java-仅在从启动器启动应用程序时显示启动屏幕,第1张

概述我有这样的SplashActivity:publicclassSplashActivityextendsActivity{HandlerHandler;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_splash)

我有这样的SplashActivity:

public class SplashActivity extends Activity {    Handler Handler;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_splash);        Handler = new Handler();        Handler.postDelayed(new Runnable() {            @OverrIDe            public voID run() {                Intent intent = new Intent(SplashActivity.this, MainActivity.class);                startActivity(intent);                finish();            }        }, 1500);        Intent applinkIntent = getIntent();        String applinkAction = applinkIntent.getAction();        Uri applinkData = applinkIntent.getData();    }}

其在AndroIDManifext.xml中的声明如下:

<activity    androID:name=".SplashActivity"    androID:theme="@style/Splash"    androID:launchMode="singletop">    <intent-filter>        <action androID:name="androID.intent.action.MAIN"/>        <category androID:name="androID.intent.category.LAUNCHER"/>    </intent-filter>    <Meta-data        androID:name="androID.app.shortcuts"        androID:resource="@xml/shortcuts"/>    <intent-filter>        <action androID:name="androID.intent.action.VIEW" />        <category androID:name="androID.intent.category.DEFAulT" />        <category androID:name="androID.intent.category.broWSABLE" />        <data            androID:host="brokenhearts.ml"            androID:scheme="http"            androID:pathPattern="/*"/>    </intent-filter>    <intent-filter>        <action androID:name="androID.intent.action.VIEW" />        <category androID:name="androID.intent.category.DEFAulT" />        <category androID:name="androID.intent.category.broWSABLE" />        <data            androID:host="brokenhearts.ml"            androID:scheme="https"            androID:pathPattern="/*"/>    </intent-filter>    <intent-filter>        <action androID:name="androID.intent.action.VIEW" />        <category androID:name="androID.intent.category.DEFAulT" />        <category androID:name="androID.intent.category.broWSABLE" />        <data            androID:host="www.brokenhearts.ml"            androID:scheme="http"            androID:pathPattern="/*"/>    </intent-filter>    <intent-filter>        <action androID:name="androID.intent.action.VIEW" />        <category androID:name="androID.intent.category.DEFAulT" />        <category androID:name="androID.intent.category.broWSABLE" />        <data            androID:host="www.brokenhearts.ml"            androID:scheme="https"            androID:pathPattern="/*"/>    </intent-filter></activity>

我在我的应用程序中使用WebVIEws.问题是,每当用户在我的应用程序的其他活动中点击我的网站的链接时,都会从SplashActivity重新开始.这在某种程度上是正确的,因为那是我添加意图的地方.但是,我想知道此设置是否还有其他方法仅在从启动器或从URL意图启动(当应用程序未运行时)而不是从URL意图启动时显示启动屏幕.当应用程序已经在前台运行时触发.

如果无法通过这种设置进行 *** 作,我还有什么其他方法可以解决?

解决方法:

检查applinkData是否为null,然后显示SplashScreen,否则启动MainScreen

public class SplashActivity extends Activity{    Handler Handler;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_splash);         Intent applinkIntent = getIntent();        String applinkAction = applinkIntent.getAction();        Uri applinkData;        if(applinkAction!=null)        applinkData = applinkIntent.getData();        if(applinkData!=null)        {        Intent intent = new Intent(SplashActivity.this, MainActivity.class);                                    startActivity(intent);                                    finish();        finish();         return;        }else        {        Handler = new Handler();        Handler.postDelayed(new Runnable()                            {                                @OverrIDe                                public voID run()                                {                                    Intent intent = new Intent(SplashActivity.this, MainActivity.class);                                    startActivity(intent);                                    finish();                                }                            },                1500);       }    }}
总结

以上是内存溢出为你收集整理的java-仅在从启动器启动应用程序时显示启动屏幕全部内容,希望文章能够帮你解决java-仅在从启动器启动应用程序时显示启动屏幕所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1092164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存