gpt4 book ai didi

android - 启动屏幕后我的应用程序崩溃

转载 作者:行者123 更新时间:2023-12-02 08:41:46 25 4
gpt4 key购买 nike

您好,我正在开发一个应用程序,正在制作一个启动画面,然后将其转到注册画面。初始屏幕后,应用程序崩溃。

splashscreen.java

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splashscreen);
Animation anim1 = AnimationUtils.loadAnimation(this,R.anim.anim_down);
ImageView img =(ImageView)findViewById(R.id.imageView);
img.setAnimation(anim1);

ProgressBar mprogressBar = (ProgressBar) findViewById(R.id.progressBar);
ObjectAnimator anim = ObjectAnimator.ofInt(mprogressBar,"progress",0,100);
anim.setDuration(4000);
anim.setInterpolator(new DecelerateInterpolator());
anim.start();

Handler handler = new Handler();

handler.postDelayed(new Runnable() {
@Override
public void run() {

startActivity(new Intent(splashscreen.this,signup.class));

}
},3000);

}


AndroidManfiest.xml

<uses-permission android:name="android.permission.INTERNET" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity" />
<activity android:name=".splashscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".login" />
<activity android:name=".signup" />
<activity android:name=".ResetPasswordActivity" />
</application>




怎么了??请帮忙

最佳答案

如果提供错误日志会更好。但是我看到的是,您已经为ObjectAnimator动画对象提供了4000毫秒的时间。

另一方面,在3000毫秒后,您会将用户转移到“注册”活动。

因此,一旦注册活动被加载,该对象将无法找到启动画面上下文,这可能是导致应用崩溃的原因。

你可以解决

 handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(splashscreen.this, signup.class));
}
}, 4000);


或者您可以将动画侦听器用于ObjectAnimator

 ObjectAnimator anim =
ObjectAnimator.ofInt(mprogressBar, "progress", 0, 100);
anim.setDuration(4000);
anim.setInterpolator(new DecelerateInterpolator());
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
startActivity(new Intent(splashscreen.this, signup.class));
}
});
anim.start();


我认为第二种方法更好,因为它可以确保动画完成。

还要检查您的anim_down动画持续时间。

关于android - 启动屏幕后我的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50215702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com