首页
学习
活动
专区
圈层
工具
发布

java之父类中的构造器是否能被子类继承?

子类默认继承父类的属性和方法,但不会继承父类的构造器,而是在子类被实例化时会默认调用父类的空构造器。子类在创建的时候会调用自己的空构造器,并在空构造器会隐式调用super(),即父类的空构造器。...如果父类的构造器被重载,那么子类中的构造器也必须初始化父类的构造器,否则会报编译错误。当然,只要父类中显示定义了空构造器,子类中就不必初始化父类的构造器。...例如: 父类Person.java package myjava; public class Person { private String name; private int age...= name; } } 子类:Student.java package myjava; public class Student extends Person{ //这里必须初始化父类重载后的构造方法...,只有一个重载了的构造器,在子类构造器中,必须初始化父类的构造器,即super关键字+父类构造器中的参数。

1.5K20

大话企业级android读书笔记(二)

所有有用户操作类都必须继承自Activity 比如想处理按键按下事件 @Override public boolean onKeyDown(int keyCode,KeyEvent event){   ...注意上面表格的Killable列,它表示当方法返回时没有执行活动的其它代码,系统是否能杀死活动寄宿的进程。三个方法(onPause()、onStop()、onDestroy())标记为Yes。....putExtra("activity1", text);   startActivity(intent1 );   B.传对象,对象要实例化,继承Serializable   Java代码   Bundle...= null) {   textview.setText(extras.getString("activity1"));   }   Bundle extras = getIntent().getExtras...= null) {   textview.setText(extras.getString("activity1"));   }   B.接收   Java代码   Bundle bundel = getIntent

1.4K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 点击通知栏消息打开activity,并判断app是否运行

    对于第二种情况,我参照了很多app的做法,现总结为以下两种: 点击通知栏消息打开activity按下返回键后判断app是否启动,如果没有启动就要启动app; 点击通知栏消息时判断app是否正在前台运行,...需要用到几个方法:获取应用的运行状态,判断应用进程是否在运行,判断某个activity是否存在任务栈里面。 判断某个服务是否正在运行,这个不重要,可能其它地方用到就先贴出来了。...或 应用首页的Activity不存在任务栈里面) if (isNoticeOpen==1&& (!...这里用到了一个ServiceHelper类,这个类是我写的,为了简写跳转过程而封装一些步骤的类。...,直接传递给MainActivity,首先是在启动页WelcomeActivity中调用ServiceHelper类的startAppMainActivitySetNoticeIntent方法判断是否从点击通知消息跳转过来

    4.1K10

    Android6.0源码分析之Settings(一)

    Settings应用源码位于:\android\packages\apps\Settings\ 从Androidmanifest中发现设置入口Settings但是打开Settings.java文件后发现继承自...空实现的内部类作用是用来加载对应的fragment,因为在6.0的设置中只有设置主页面对应的activity有实现,别的页面基本是以fragment的形式呈现。...当创建快捷方式时调用queryIntentActivities方法查询到的类为这些空实现 的内部类。...启动独立的类 现在我们只能去查看其父类SettingsActivity.java中的实现了 Chapter Two,onCreate方法 首先是调用getMetaData方法,但与4.4.2源码不同,6.0...mIsShowingDashboard = className.equals(Settings.class.getName()); //获取到所加载的activity是否属于SubSettings

    97430

    Android 开发踩坑记:Activity 间传参总是失败?4 种常用方式 + 完整代码示例,一次学会

    Intent就像“信使”,负责在Activity之间传递“请求动作”和“附加数据”,它的核心作用是:告诉系统“要跳转到哪个Activity”;携带需要传递的参数(比如字符串、数字、对象等)。...获取传递过来的Intent对象 Intent intent = getIntent(); // 2....VIP=" + isVip); }}方式3:全局变量传参(适合多页面共享数据)如果多个Activity都需要用到同一个数据(比如用户登录状态、Token),可以用全局变量——通过继承Application...步骤1:创建自定义Application类新建Defind类(名字可自定义),继承Application,定义需要共享的变量和get/set方法:public class Defind extends...获取Intent中的Bundle Intent intent = getIntent(); Bundle bundle = intent.getExtras(); // 也可以用

    36810

    Flutter Android 端 ActivityFragment 流程源码分析

    FlutterActivity 相关分析 Android App 中默认 Flutter UI 界面呈现在平台层的实现都继承自io.flutter.embedding.android.FlutterActivity..., LifecycleOwner { ...... } 依据这个继承关系可以看到,FlutterActivity 直接继承自 Activity,而不是兼容包的 AppCompatActivity,这对于有历史包袱的...Activity,这个 Activity 继承自androidx.fragment.app.FragmentActivity,所以使用 FlutterFragment 及 FlutterFragmentActivity...对你应用的基类 Activity 还是有一点限制的,没有前面介绍的 FlutterActivity 香。...这也就是为什么我们在 Android 平台上查看一个标准 Flutter App 的 Activity 堆栈默认只有继承自 FlutterActivity 的一个 Activity,其内部 View 层级如下的原因

    1.5K00

    Activity 跳转详解

    逻辑步骤: 通过Activity的实现类对象调用 startActivity(Intent intent) 方法跳转 然后需要创建一个Intent对象 Intent i = new Intent(getApplicationContext..., value) 然后再调转到的Activity中使用 getIntent().getStringExtra(key) 等方法来获取数据 2....-- data android:mimeType 数据类型限制 --> 通过Activity的实现类对象调用 startActivity(Intent intent) 方法跳转 然后需要创建一个Intent...2.若没有现有的Activity对象存在(任务栈也不存在),因此需要将其放置在其自己独立的任务栈中。...getIntent()方法的特点 我们将显示代码打上断点可以观测到,每次启动时, getIntent() 取得的方法总是 null (注:若你在模拟发送短信前,应用已经关闭,那么会回显示第一次的数据,再次发送短信取得的都是第一次的数据

    1K20

    设计一个通用的BaseActivity

    每个Activity通常都是绑定视图,绑定控件,监听控件,获取Bundle,跳转Activity还有一些很有些烦人的小功能如:Toast,findViewById,我们都可以封装一层简化他们的使用 BaseActivity...的代码如下: public abstract class BaseActivity extends Activity implements View.OnClickListener { /** 是否沉浸状态栏...; /** 是否禁止旋转屏幕 **/ private boolean isAllowScreenRoate = false; /** 当前Activity渲染的视图View **/ private...void setScreenRoate(boolean isAllowScreenRoate) { this.isAllowScreenRoate = isAllowScreenRoate; } } 继承自...所以说搞一个BaseActivity是多么有必要,而且Fragment也要搞一个基类,方法也类似,这样可以大大减少重复代码,而且管理起来还比较容易,保持了样式的一致,如果想个性化也预留了相应的方法。

    41220

    在不同的activity之间传递数据

    新建一个activity,继承Activity 清单文件中进行配置,添加activity/>节点 设置名称 android:name=”.类名” 点 代表的是当前包名,也可以不写 新建一个布局文件,线性布局...通过简便方式直接指定,参数:上下文,类字节码 调用Intent对象的putExtra(key,val)方法,传递数据,参数:键值对 调用startActivity(intent)方法,开启 第二个界面里面...: 获取Intent对象,调用getIntent()方法,获取到传递过来的Intent对象 调用Intent对象的getStringExtra(name)方法,获取传递的String,参数:键 获取Random...:max=”100”,代码中获取到这个ProgressBar对象,调用对象的setProgress(p)方法,参数:上面的随机值 也可以传递对象,但是这个对象必须序列化 第一个activity: package...findViewById(R.id.tv_name); pb=(ProgressBar) findViewById(R.id.pb_result); Intent intent=getIntent

    3.7K30

    2014-10-25Android学习--------activity之间批量传递数据----Bundle类的实现

    这就相当于activity之间的数据的通信吧,信息的传递 方法是:使用Bundle类 根据前面的学习中可以看到,从ListView界面中,当我们点击每一行的item的时候,页面就应该要跳转到另外一个界面中去...Bundle bundle = getIntent().getExtras(); //getIntent()能够得到activity传递过来的意图(Intent) 对象,然后调用getExtras...()函数,我们能得到传递过来的批量数据,注意了,这个数据它是继承Map的, Intent android....Activity.getIntent() // 这个能很好的让我们明白getIntent()的返回值时什么,谁来调用它 Bundle android . content ....接下来我们就是如何取出里面的值就可以了,我们再来看看文档中有没有get类型的函数,找到了: 这个get(String key)函数的作用就是根据给定的键值字符串,返回一个对象实体类,那么就

    90920

    被后台杀死后,Android应用如何重新走闪屏逻辑

    后台杀死与恢复的堆栈.jpg APP被后台杀死后,APP端进程被销毁了,也就不存在什么Activity了,也就没有什么Activity堆栈,不过AMS的却是被保留了下来: ?...,会回调该函数,如果是从后台杀死恢复来的,回调onCreate的时候会传递一个非空的Bundle savedInstanceState给当前Activity,只要判断这个非空就能知道是否是恢复流程。...如果简单划分一下推送场景,可以看做一下三种 进程存活,Activity存活 进程存活,但是没有Activity存活 进程不存在(无论是否被杀) 其实后面两种完全可以看做一种,这个时候,都是要先start...的路由系统中,针对这两种场景要,先跳转闪屏,闪屏回来后,再跳转推送页 如何判断呢,后面两种场景其实只需要判断是否有Activity存活即可,也就是查查APP的topActivity是否为null,注意不要去向...,需要准确区分是否是推送跳转进来的,如果不是推送跳转进来,就不需要什么特殊处理,如果是推送跳转进来一定会携带跳转scheme数据,根据是否携带数据做区分即可,看一下MainActivity的代码: @Override

    3.3K40

    Android高频面试专题 - 基础篇(一)Activity

    (30 - 36) (4) ApplicationThread是一个binder对象,其运行在binder线程池中,内部包含一个H类,该类继承于类Handler。...将某个Activity的启动模式设置为singleTop,启动此Activity时,会先检查栈顶是否是此Activity的实例,如果是,则直接复用,如果不是,才创建实例。...启动Activity时,若Android系统中不存在该Activity的实例,则创建并入栈;若已存在,不管此实例位于哪个程序的哪个任务栈中,系统都会把该任务栈转移到前台,显示该实例。...中通过getIntent().getData();和getIntent().getSchema();获取数据。...都继承自这个基类,并在这个基类onStart()和onStop()方法中进行上报,继而就可以统计到每个页面的PV、页面留存时间,同时还可以在基类中做一些优化设置 12.a->b->c界面,其中b是SingleInstance

    2.5K31

    我一行代码都不写实现Toolbar!你却还在封装BaseActivity?

    你不能改三方库的 Activity 所以你只有改你的 BaseActivity 让它去继承三方库的 Activity,但是当改了 BaseActivity 后,发现有很多继承于 BaseActivity...BaseActivity 通过继承来实现一些 Activity 的公共逻辑,而不能将公共逻辑封装到其他类里面?...作用和你猜的没错,就是在你调用这个方法传入这个接口实现类后,系统会在每个 Activity 执行完对应的生命周期后都调用这个实现类中对应的方法,请记住是每个!...,而且更加优雅(因为我是站在三方库设计者的角度提出这个功能的,我必须将惟一继承的机会留给其他 Activity ,你如果相较于之前的方式觉得不够优雅,那就当我没说),更不用担心 Java 单继承的束缚...,我就是喜欢使用不一样的思路解决同样的问题,不管你是否觉得可行,我至少用这个你觉得不可行的思路实现了我想达到的效果,仁者见仁智者见智,如果我们思维没有碰撞,那也请珍惜我的劳动成果 对于一些评论我再说一句

    94240

    【Android 组件化】路由组件 ( 页面跳转参数依赖注入 )

    -- 在 组件化 中 , 使用 路由组件 进行界面跳转时 , 涉及到参数的传递 , 传递过去的参数需要在目的地 Activity 的 onCreate 方法中 , 调用 getIntent().getXxxExtra..., 只要在目的 Activity 中的成员属性上标注注解 , 可以自动生成 getIntent().getXxxExtra() 相关逻辑 , 开发者不必手动编写此类逻辑 ; ButterKnife 的作用是在...// 每个 Map 键值对元素都要生成一个对应的 Java 类 // 获取 Activity 类 TypeElement rawClassElement...类转为指定的 Activity 子类类型 builder.addStatement("$T t = ($T)target", className, className);..., 原来的 Activity 类名基础上添加 "_Extra" 后缀 String extraClassName = rawClassElement.getSimpleName(

    1.3K20

    我一行代码都不写实现Toolbar!你却还在封装BaseActivity?

    你不能改三方库的 Activity 所以你只有改你的 BaseActivity 让它去继承三方库的 Activity,但是当改了 BaseActivity 后,发现有很多继承于 BaseActivity...BaseActivity 通过继承来实现一些 Activity 的公共逻辑,而不能将公共逻辑封装到其他类里面?...作用和你猜的没错,就是在你调用这个方法传入这个接口实现类后,系统会在每个 Activity 执行完对应的生命周期后都调用这个实现类中对应的方法,请记住是每个!...,而且更加优雅(因为我是站在三方库设计者的角度提出这个功能的,我必须将惟一继承的机会留给其他 Activity ,你如果相较于之前的方式觉得不够优雅,那就当我没说),更不用担心 Java 单继承的束缚...,不管你是否觉得可行,我至少用这个你觉得不可行的思路实现了我想达到的效果,仁者见仁智者见智,如果我们思维没有碰撞,那也请珍惜我的劳动成果 对于一些评论我再说一句, registerActivityLifecycleCallbacks

    42110
    领券