У меня есть MainActivity, которая имеет длительный холодный запуск на некоторых устройствах, поэтому я хотел бы использовать экран spla sh и переключать его из функции на моей MainActivity на fini sh.
Я использую мой SplashActivity в качестве модуля запуска, а затем загрузить мой MainActivity. Это работает, когда я устанавливаю его в SplashActivity, но моя SplashActivity внезапно завершается и все равно выдает пустой экран при холодном запуске, а затем запускает главное приложение l oop.
Ниже кода скоро заканчивается экран spla sh и MainActivity по-прежнему работает с длинным пустым экраном холодного запуска.
Я знаю, что это также будет работать с тайм-аутом / таймером, как я видел в большинстве ответов, но я хотел бы вызвать его внутри своей MainActivity с помощью функции или как только моя основная NativeActivity l oop запускается. Я использую JNI для вызова java функций из C ++.
Edit: Я также нашел альтернативное решение по использованию фрагментов внутри MainActivity, но не знаю, с чего начать как автор не поделился решением подробно здесь:
{ ссылка }
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}
My MainActivity просто загружает еще одну Native .so библиотеку.
public class MainActivity extends NativeActivity {
static {
System.loadLibrary("MyLib");
}
public void RemoveSplash() {
// Ideally I will use this to trigger it from my C++ code using JNI.
}
}
Вот мой AndroidManifest. xml
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="landscape">
<!-- Tell NativeActivity the name of or .so -->
<meta-data android:name="android.app.lib_name"
android:value="native-activity" />
</activity>
<activity android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>