香港手机号注册 AlipayHK 显示已经被注册了怎么办
为了方便,买了一些香港手机卡。之前用 clubsim 的时候,注册了 alipay、八达通都没啥问题。但是不小心sim卡遗失了,所以换到了 CMHK 的手机卡。但是换过来后正想把 alipay 换绑的时候,结果显示账号已经被注册,APP 里面联系客服也没人理:
最终网上搜到了解决方案:
直接拨打支付宝官方客服 95188大陆手机卡或者香港手机卡都行,我使用大陆的手机号打的。打过去后按照提示选择支付宝-个人业务的客服,然后说明情况:
我:我最近新申请了一个香港手机号,但是在注册账号的时候显示已经被注册了,怀疑这个手机号应该是一个循环号码,能否帮我把上个账号注销下
答:麻烦提供下手机号
我:852-xxxxxxxx
答:稍等…查询到之前这个账号没有实名认证,已经帮您注销掉了,您可以注册下试试
我:(app 尝试了注册,成功)可以了,谢谢
macOS 无法自动切换到深色模式
在 macOS 的设置里面明明将「外观」设置的是自动,但是每次 macOS 都不能及时的将颜色主题切换为深色模式。排查后才发现,原来是「夜览」搞的鬼,记录下解决方案。
macOS 奇怪的逻辑macOS 的奇怪逻辑,深色模式和夜览是绑定的:哪怕 mac 认为已经到了深色模式的时间点了,比如支持切换颜色的壁纸已经变黑了,但是 APP 还是按浅色外观展示的。原因就是夜览认为自己还没到「夜间」可以展示夜览的时候,也就不允许 mac 切换到深色模式。
解决办法所以解决办法就是:
外观选择自动,关闭夜览(✅推荐!!)
外观选择自动,夜览选择手动调整时间
香港银行开户-永隆
去香港准备工作
📱开通漫游包,运营商APP 或者支付宝上购买即可;
🚇地铁:支付宝(切换到香港)、微信(搭车码 小程序)均可,但是得找紫色的闸机(每个入口都会有 2-3 台),不是紫色的不能刷二维码;
💳八达通:可根据情况在 711 或者地铁站买一张,不仅可以刷地铁、巴士,很多店都支持八达通刷卡支付;
📱APP:
地图软件:高德和 GoogleMap。记得提前下载离线地图,节省流量;
ZA Bank:香港的一家虚拟银行,可以到香港后,直接通过 APP 开户,门槛低,基本上都能成功。开户后可以申请实体卡,免费邮寄到大陆你的通信地址。(23 年 6 月 1 号后非香港地址需要收 25HKD 邮寄费)
准备材料
🪪身份证
🪪港澳通行证
🧾过关小白条
🧾地址证明(银行卡是快递寄过来的,如果邮寄地址和身份证地址不一致,则需要地址证明)
地址不能是公司地址,不能包含 xx 店等特殊字样。我有朋友因为租的公寓,地址包含了(二店)这样的字样,当场被拒;
可以使用印有你名字和地址的水电燃气缴费单;
或者使用印有名字和地址的近 3 个月任意一月的信用卡账单,比如招行。去银行柜台申请即 ...
深入理解JVM-Reference源码
Reference源码分析
本文基于JDK1.8.0_271分析,native源码下载自openJDK官网(build 1.8.0_41-b04)
0. 前言JDK1.2开始,引入了一个新的包,java.lang.ref:
java.lang.ref
Finalizer.class
FinalizerHistogram.class
FinalReference.class
PhantomReference.class
Reference.class
ReferenceQueue.class
SoftReference.classs
WeakReference.class
额外的还有一个在sun.misc包下
Cleaner.class
随之带来了四个新的概念:
强引用Storn References:随处可见,我们直接new出来的代码就是强引用。内存不足时,宁愿抛出OutOfMemoryError也不愿意回收这些对象。我们可以手动的设置为null让GC回收他。
软引用SoftReference:等级比强引用低,只有在内存不足的时候才回去回收。我们可以实现内存敏感 ...
Jetpack源码 之 ViewModel
0. 前言ViewModel作为MVVM中最重要的一层,他的作用就是对数据状态的持有与维护。
根据源码里面的注释,我们可以知道,它在Android中事实上是为了解决一下两个问题:
UI组件间实现数据共享
Activity配置更改重建时保留数据
对于第一条,如果不同VM,那么各个UI组件都需要持有共享数据的引用,这样会带来两个麻烦:
如果新增共享数据,则各个UI组件需要再次声明并初始化新增的共享数据
某个组件对于数据的修改,没办法直接通知其他UI组件,需手动实现观察者模式
对于第二条,如果不使用VM,那么还是可以通过onSaveInstanceState保存的,但是如果数据量比较大,数据的序列化和反序列化都会产生一定的性能开销。
所以我们看ViewModel的源码,就需要从这两个问题入手:
ViewModel是如何解决UI组件间共享数据的
ViewModel是怎么解决重建时保留数据的
1. ViewModel是什么我们直接看下源码:1234567891011121314151617181920212223242526272829303132333435363738394041 ...
Jetpack源码 之 LiveData
Jetpack源码 之 LiveData0. 前言LiveData是Jetpack中一个响应式开发框架,官方文档对它的说明是一种可观察的数据存储器类,具有生命周期感知能力。有点类似于感知生命周期的RxJava。
0.1 用法通常LiveData都是结合着ViewModel使用的,一般都是在ViewModel中创建LiveData:1234567891011121314151617class MvvmViewModel : ViewModel() { // 通过MutableLiveData创建一个可读可写的LiveData // 设置为Private,避免外部对数据直接进行修改,并暴露对外接口,让外部通过接口来修改 private val _count = MutableLiveData(0) // 暴露给外部一个只读的LiveData副本,让外部监听数据通过此LiveData监听 val count: LiveData<Int> get() = _count fun increaseCount() { ...
Jetpack源码 之 Lifecycle
0. 前言0.1 用法Lifecycle可以说是Jetpack中最基础的一个库,他的主要作用就是帮我们实现的生命周期监听。
对于他的用法也很简单,由于我们的Activity(间接通过ComponentActivity实现)、Fragment(直接实现)都已经实现了LifecycleOwner接口,所以我们可以直接在他们中调用getLifecycle()获得到Lifecycle对象,然后调用他的addObserver()将我们自定义的LifecycleObserver传入进入即可。123456789101112131415161718192021222324252627282930313233/* 以Activity为例 */// MainActivityclass MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentV ...
Jetpack入门 之 LiveData的map()和switchMap
LiveData的map()和switchMap官方文档中的介绍在Android Developer官网上,对于map和switchMap的解释是这样的:
map:
Applies a function on the value stored in the LiveData object, and propagates the result downstream.
对存储在 LiveData 对象中的值应用函数,并将结果传播到下游。
switchMap:
applies a function to the value stored in the LiveData object and unwraps and dispatches the result downstream. The function passed to switchMap() must return a LiveData object, as illustrated by the following example:
对存储在 LiveData 对象中的值应用函数,并将结果解封和分派到下游。传递给 sw ...
Android源码之SharedPreferences
SharedPreferences源码分析0. 前言SharedPreferences可以说是Android中最常用的一种存数据到文件的方式。他的数据是以键值对的方式存储在 ~/data/data/包名/shared_prefs 这个文件夹中的。
这个存储框架是非常轻量级的,如果我们需要存一些小数据或者是一个小型的可序列化的Bean实体类的,使用SharedPreferences是最明智的选择。
1. 使用方法1.1 获取SharedPreferences在使用SharedPreferences前,我们得先获取到它。
由于SharedPreferences是Android内置的一个框架,所以我们想要获取到它非常的简单,不需要导入任何依赖,直接写代码就行。下面我们就来介绍下获取对象的三个方式:
1.1.1 Context # getSharedPreferences()首先就是可以说是最常用的方法,通过Context的getSharedPreferences() 方法去获取到SharedPreferences对象。由于是通过Context获取的,所以基本上Android的所有场景我们都 ...
Kotlin入门(四)——类和对象的进阶
Kotlin入门(四)——类和对象的进阶
本章内容包括:
可空性
数据类
密封类
枚举类
0. 前言在上一篇《Kotlin入门(三)——类、对象、接口》
我们只聊到了Kotlin中基本类的写法以及继承,但是我们说过,Kotlin的本质就是解决Java的繁琐,如果Kotlin只有这么简单的话怎么还能被称为Kotlin。
首先我们思考在Java中的几个场景:
在方法中每次都得对传进来的对象进行判空,并且很多时候都会忘记判空或者不知道别人在调用你这个方法的时候到底会不会给空,然后就导致程序空指针异常了
123456void nullTest(Obj obj) { if (obj == null) { return } ...}
每次在Java中写JavaBean的时候,一旦数据变多,就得写一大堆的getter、setter、toString、equals等等方法
123456789101112131415161718192021222324252627282930313233343536373839404 ...