【发布时间】:2016-10-07 22:55:25
【问题描述】:
我正在创建一个非常简单的应用程序来为游戏进行一些计算,但我偶然发现了一个无限的活动重新加载循环。我不知道是什么导致了这个循环,因为确实没有任何数据表明要检查什么(我的 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);
}
}
这是我的清单,如果它有任何帮助的话。
<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。
【问题讨论】:
-
MainActivity extends IntroActivity- 你的问题。当您在MainActivity中调用super.onCreate()时,它会再次运行IntroActivity的onCreate()。您确定要MainActivity成为IntroActivity的子类吗?也许只是extends Activity? -
" 游戏 我们 和我的女朋友一起玩" - 我们?此外,我们真的需要知道吗?
-
@Mike M. 就是这样!你有一双鹰眼,我的朋友。节省了我一些时间,所以我现在可以进行计算了。很好的答案,请发布它,以便我可以竖起大拇指并接受。 :)
标签: java android android-intent android-activity