我有这样的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-仅在从启动器启动应用程序时显示启动屏幕所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)