在操作系统关闭应用程序时识别释放的对象

时间:2019-06-11 07:10:17

标签: android c++ android-ndk

一个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;
}

0 个答案:

没有答案