gpt4 book ai didi

java - Android - Activity 在无限循环中重新启动

转载 作者:行者123 更新时间:2023-11-29 04:39:20 25 4
gpt4 key购买 nike

我正在创建一个非常简单的应用程序来为游戏做一些计算,我偶然发现了一个无休止的 Activity 重新加载循环。我不知道是什么导致了这个循环,因为确实没有任何数据表明要检查什么(我的 logcat 中没有红色)。

我的猜测是我的 IntroActivity 导致了这种困惑,因为无限循环有 3 秒的延迟。我检查了 SO 并找到了多个代码示例来创建此延迟,但没有任何方法可以解决此问题。这真的开始让我烦恼了。 MainActivity 类加载正常,布局看起来不错,但它每 3 秒重新加载一次。

每次我更改代码中的某些内容时,我都会进行干净的构建,只是为了确保没有“旧”的东西加载到我的构建中,但这无济于事。我还尝试在 IntroActivity 类内的 onCreate 方法中完全隔离 MainActivity 调用,令人惊讶的是屏幕变为空白(设备进入循环 - 没有错误)。

这是我的简单 IntroActivity 类,延迟 3 秒以启动我的 MainActivity,我想在其中创建所有按钮、文本文件等。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class IntroActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intro);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(IntroActivity.this, MainActivity.class);
i.setFlags(i.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}
}, 3000);
}
}

...这是我的 MainActivity 类:

import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends IntroActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

如果有任何帮助,这就是我的 list 。

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".IntroActivity"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity"
android:label="@string/title_activity_main"
android:theme="@android:style/Theme.Black.NoTitleBar">
</activity>
<activity android:name=".GameActivity"
android:theme="@android:style/Theme.Black.NoTitleBar">
</activity>
</application>

我正在 Android Studio 2.2.0 中构建此应用。我的设备是三星 Galaxy Tab S 8.4。

最佳答案

问题是 MainActivityIntroActivity 的子类。当MainActivity执行时,它的onCreate()方法正在调用super.onCreate(),这是IntroActivityonCreate(),在这里您再次启动 MainActivity,调用 super.onCreate() 等,无穷无尽.

看来 MainActivity 确实不需要扩展 IntroActivity,所以只需将其作为常规 Activity 子类即可。

public class MainActivity extends Activity {
...

关于java - Android - Activity 在无限循环中重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39926823/

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