一个android应用具有执行c ++代码的线程。 android操作系统可以关闭该应用程序,并且指针变得悬垂,这会导致我无法重现的罕见崩溃。
是否有解决此问题的解决方案?
例如,这行得通吗?
检查指针main_class == MainClass::instance
是否在应用逻辑中的敏感点
mainclass.h
class MainClass
{
public:
MainClass();
~MainClass();
static MainClass* instance;
void DoWork();
bool Finished();
}
mainclass.cpp
MainClass* MainClass::instance = nullptr;
MainClass::MainClass()
{
instance = this;
}
MainClass::~MainClass(){}
void MainClass::DoWork(){}
bool MainClass::Finished()
{
return false;
}
main.cpp
int main(int argc, char *argv[])
{
MainClass* main_class = new(std::nothrow) MainClass();
if (main_class == nullptr)
{
return 0;
}
while(main_class->Finished() == false)
{
main_class->DoWork();
}
return 1;
}