android– “public void onDestroy()”和“protected void onDestroy()”之间的区别?

android– “public void onDestroy()”和“protected void onDestroy()”之间的区别?,第1张

概述这是我的代码的一部分:packagecom.admobsdk_dfp_handler;importcom.google.ads.*;importcom.google.ads.doubleclick.*;importandroid.os.Bundle;importandroid.os.Handler;importandroid.app.Activity;importandroid.view.Menu;importandroid.widget.RelativeLa

这是我的代码的一部分:

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中,可以在包中访问受保护的方法,并且可以在任何地方访问公共方法.但通常一个类有自己的onDestroy(),所以它是否意味着任何一个都可以使用?在选择它们时我必须关注的任何一点?

谢谢您的帮助.

解决方法:

在公共和受保护之间,功能没有区别.唯一的区别是,对于public,您可以在任何类的活动实例上调用onDestroy().使用protected,您只能在同一个包中的同一个类或子类中调用.使用onDestroy(),我觉得将它公之于众都没有多大意义.这实际上可能是不好的做法.

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

我认为你看到的公开实施只是一个错误/没有必要.如果您想测试只需将其更改回受保护.如果没有编译器错误,则没有必要.

总结

以上是内存溢出为你收集整理的android – “public void onDestroy()”和“protected void onDestroy()”之间的区别?全部内容,希望文章能够帮你解决android – “public void onDestroy()”和“protected void onDestroy()”之间的区别?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1106242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存