我找到了一些以编程方式退出Android应用程序的代码.通过在onDestroy()中调用以下任何一个代码,它会完全退出应用程序吗?
System.runFinalizersOnExit(true)android.os.Process.killProcess(android.os.Process.myPid());我不想在单击退出按钮后在后台运行我的应用程序.请问我可以使用这些代码中的任何一个来退出我的应用程序吗?如果可以,我可以使用哪些代码?这是退出Android应用程序的好方法吗?
我最近将 targedtSdk 更改为 29 并发布了一个版本。并开始将这次崩溃称为中止。下面是我从播放控制台获得的堆栈跟踪。所有崩溃仅发生在 Android 10 设备中。除此之外,没有其他信息。
#00 pc 0000000000082fb4 /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)
#00 pc 00000000004b4888 /apex/com.android.runtime/lib64/libart.so (art::Runtime::Abort(char const*)+2268)
#00 pc 000000000000c5b4 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+608)
#00 pc 0000000000442f8c /apex/com.android.runtime/lib64/libart.so (art::OatHeader::GetCompilerFilter() const+280)
#00 pc 000000000044a884 /apex/com.android.runtime/lib64/libart.so (art::OatFile::GetCompilerFilter() const+40)
#00 pc 0000000000455d38 /apex/com.android.runtime/lib64/libart.so (art::OatFileManager::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char>>&)+376)
#00 pc 00000000004c1d78 /apex/com.android.runtime/lib64/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char>>&)+104)
#00 pc 00000000004d5ad8 /apex/com.android.runtime/lib64/libart.so (art::SignalCatcher::HandleSigQuit()+1356)
#00 pc 00000000004d4b6c /apex/com.android.runtime/lib64/libart.so (art::SignalCatcher::Run(void*)+252)
#00 pc 00000000000e205c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36)
#00 pc 0000000000084af0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)```
Made a staged rollout of 50% and the number of crashes for …Run Code Online (Sandbox Code Playgroud) 我最近更新了我们用 Qt/QML 编写的 Playstore 应用程序之一,并且我收到了大量“中止”崩溃。崩溃仅发生在 Android 10 设备上。该应用程序是使用 Qt 5.13.2 和 Target SDK 28 (Android 9) 构建的。不幸的是,我无法在我们的任何 Android 10 设备上重现崩溃。
JDK:jdk1.8.0_241.jdk
NDK:android-ndk-r21
这似乎是一个类似的问题,但并不完全相同。在中止崩溃
关于什么可能导致这次崩溃的任何想法将不胜感激。这是 Google Playstore 控制台中显示的堆栈跟踪:
backtrace:
#00 pc 000000000006f06c /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)
#01 pc 00000000000cf71c /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+116)
#02 pc 00000000000cee50 /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+52)
#03 pc 00000000000cecb4 /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+148)
#04 pc 00000000000cd6e4 /apex/com.android.runtime/lib64/bionic/libc.so (pthread_cond_wait+72)
#05 pc 0000000000071674 /system/lib64/libc++.so (std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)+20)
#06 pc 00000000000198dc /system/lib64/libstagefright_bufferpool@2.0.so (android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl::invalidatorThread(std::__1::map<unsigned int, std::__1::weak_ptr<android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl> const, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::weak_ptr<android::hardware::media::bufferpool::V2_0::implementation::Accessor::Impl> const>>>&, std::__1::mutex&, std::__1::condition_variable&, …Run Code Online (Sandbox Code Playgroud)