gpt4 book ai didi

android - "public void onDestroy()"和 "protected void onDestroy()"之间的区别?

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:36 26 4
gpt4 key购买 nike

这是我的部分代码:

package com.admobsdk_dfp_handler;

import com.google.ads.*;
import com.google.ads.doubleclick.*;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.widget.RelativeLayout;

public class AdMobSDK_DFP_Handler extends Activity {
private DfpAdView adView;
private static final String adUnitId = "/7732/test_portal7/android_app1_test_portal7/top_banner_non_sdk_application_android_app1_test_portal7";
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {

public void run() {
adView.loadAd(new AdRequest());
handler.postDelayed(this, 5000);
}
};

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

adView = new DfpAdView(this, AdSize.BANNER, adUnitId);

RelativeLayout layout = (RelativeLayout) findViewById(R.id.mainLayout);

layout.addView(adView);

adView.loadAd(new AdRequest());

};

@Override
protected void onPause() {
handler.removeCallbacks(runnable);
super.onPause();
}

@Override
protected void onResume() {
handler.postDelayed(runnable, 5000);
super.onResume();
}

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_ad_mob_sdk__dfp__handler,
menu);
return true;
}

}

protected void onDestroy() 用于清理程序。但是,我看到了一些示例项目,它们通常使用 public void onDestroy() 来进行清理。

据我所知,在 Java 中,protected 方法可以在包内访问,而 public 方法可以在任何地方访问。但是通常一个类都有自己的onDestroy(),那是不是说哪个都可以用??在它们之间进行选择时有什么需要注意的地方吗?

感谢您的帮助。

最佳答案

public 和 protected 在功能上没有区别。唯一的区别是,对于 public,您将能够在任何类的 Activity 实例上调用 onDestroy()。使用 protected ,您只能在同一包中的同一类或子类中调用。对于 onDestroy(),我认为公开它没有多大意义。这实际上可能是不好的做法。

换句话说,除非你有一个非常特殊的理由让更多的类可以访问它,否则就使用 protected 。

我认为您看到的公共(public)实现只是一个错误/没有必要。如果您想测试,只需将其改回 protected 即可。如果没有编译器错误,则不需要。

关于android - "public void onDestroy()"和 "protected void onDestroy()"之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13710252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com