onDestroy 从未调用过

onDestroy never called

我更新了最新的 Android Studio 并创建了一个新的空白项目。我将以下代码添加到 MainActivity.java 文件中,但从未调用过 onDestroy()。有什么方法可以获取销毁事件吗?

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.edevshop.destroy">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

onDestroy() 仅在系统资源不足(内存、cpu 时间等)并决定终止您的 activity/application 或有人调用 finish() 时调用你的 activity.

因此,要测试您的代码(),您可以创建一个测试按钮,它将在您的 activity.

上调用 finish()

阅读更多here

此外,我相信在 adap 不是关键资源之前,您不需要在 onDestroy() 中调用所有这些东西。即使在那种情况下 android 系统也有适当处理它们的机制。

已经回答了here

只需查看并修改您的 onDestroy() 方法,如下所示:

@Override
protected void onDestroy() {
    Log.d("TAG", "Yay.. onDestroy called!");
    super.onDestroy();
}

现在... 运行 应用 > 打开 LOGCAT > 关闭应用(按“返回”按钮) 您会看到一个日志。