在我的Android应用程序中,我重载了Application类,并更新了清单中的标记.此应用程序还会创建Android服务.我已经在我的Application类的onCreate中放了一些日志,我看到它被调用了两次.第一次是我的应用程序启动时(这是预期的)然后,它通常是在创建服务之后.日志还显示正在创建Application的第二个实例.(我打印"this"值,它们是不同的).
我认为应用程序将创建为单例.这是因为我创建了一个服务吗?
为什么导航可组合项调用两次?如果我在文本上设置断点,应用程序运行时我将停止两次。谢谢您的回答。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController()
var i: Int = 0
NavHost(navController = navController, startDestination = "s1") {
composable("s1") {
i++
Text("$i")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 问题:
我遇到一个不寻常的问题,即我的应用程序启动器活动 (MainActivity) 的 onCreate() 方法被调用两次,但仅当我安装该应用程序后首次启动该应用程序时(从 Google Play 内部应用程序共享链接或在设备上安装签名的 apk 文件)。此行为会导致同时创建 MainActivity 的多个实例。
描述:
我已经彻底检查了我的代码,并且可以确认没有意外调用 startActivity 或任何会导致 onCreate() 被多次调用的显式代码。我检查了这个,但这些错误似乎已经过时了
观察结果:
代码:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xyz">
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<!-- Required to maintain app compatibility. -->
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<application
android:name=".framework.presentation.BaseApplication"
android:allowBackup="false"
android:fullBackupOnly="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${enableCrashReporting}" />
<activity
android:name="xyz.framework.presentation.MainActivity"
android:windowSoftInputMode="adjustResize"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="xyz.framework.presentation.main.RecipeActivity" …Run Code Online (Sandbox Code Playgroud) android android-manifest android-activity google-play internal-app-sharing
使用LogCat时,日志会显示三次.任何人都可以解释为什么会这样吗?日志样本:
04-24 15:45:30.443: INFO/dalvikvm(351): Debugger has detached; object registry had 1 entries
04-24 15:45:30.434: DEBUG/jdwp(351): JDWP shutting down net...
04-24 15:45:30.443: INFO/dalvikvm(351): Debugger has detached; object registry had 1 entries
04-24 15:45:30.482: DEBUG/dalvikvm(351): VM cleaning up
04-24 15:45:30.503: ERROR/AndroidRuntime(351): ERROR: thread attach failed
04-24 15:45:30.482: DEBUG/dalvikvm(351): VM cleaning up
04-24 15:45:30.503: ERROR/AndroidRuntime(351): ERROR: thread attach failed
04-24 15:45:30.482: DEBUG/dalvikvm(351): VM cleaning up
04-24 15:45:30.503: ERROR/AndroidRuntime(351): ERROR: thread attach failed
04-24 15:45:30.973: DEBUG/dalvikvm(351): LinearAlloc 0x0 used 638428 of 5242880 (12%)
04-24 …Run Code Online (Sandbox Code Playgroud)