题外话
不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊
这里我为大家准备了一些我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~
欢迎评论区讨论。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
本篇文章介绍的是进程第一种方式:
- 1像素且透明Activity提升App进程优先级
1像素且透明Activity提升App进程优先级:
首先创建KeepLiveActivity.java继承自AppCompatActivity,这就是透明的Activity:↓
public class KeepLiveActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(“KeepLiveActivity”,“开启KeepLiveActivity”);
//左上角显示
Window window = getWindow();
window.setGravity(Gravity.START|Gravity.TOP);
//设置为1像素大小
WindowManager.LayoutParams params = window.getAttributes();
params.x = 0;
params.y = 0;
params.width = 1;
params.height = 1;
window.setAttributes(params);
KeepLiveManager.getInstance().setKeepLiveActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(“KeepLiveActivity”,“关闭KeepLiveActivity”);
}
}
<activity android:name=“.KeepLiveActivity”
android:excludeFromRecents=“true”
android:exported=“false”
android:finishOnTaskLaunch=“false”
android:launchMode=“singleInstance”
android:theme=“@style/KeepLiveTheme”/>
public class KeepLiveManager {
private static final KeepLiveManager ourInstance = new KeepLiveManager();
public static KeepLiveManager getInstance() {
return ourInstance;
}
private KeepLiveManager() {
}
//弱引用,防止内存泄漏
private WeakReference reference;
private KeepLiveReceiver receiver;
public void setKeepLiveActivity(KeepLiveActivity activity) {
reference = new WeakReference<>(activity);
}
//开启透明Activity
public void startKeepLiveActivity(Context context) {
Intent intent = new Intent(context, KeepLiveActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
//关闭透明Activity
public void finishKeepLiveActivity() {
if (reference != null && reference.get() != null) {
reference.get().finish();
}
}
//注册广播
public void registerKeepLiveReceiver(Context context) {
receiver = new KeepLiveReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
context.registerReceiver(receiver, filter);
}
//反注册
public void unregisterKeepLiveReceiver(Context context){
if(receiver != null){
context.unregisterReceiver(receiver);
}
}
}
/*
-
广播接收者监听屏幕开启和熄灭
-
*/
public class KeepLiveReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction())) {
//屏幕关闭,开启透明Activity
KeepLiveManager.getInstance().startKeepLiveActivity(context);
} else if (Intent.ACTION_SCREEN_ON.equals(intent.getAction())) {
//屏幕开启,关闭透明Activity
KeepLiveManager.getInstance().finishKeepLiveActivity();
}
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1像素且透明Activity提升App进程优先级
总结
写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于Flutter的学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。
由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的
还有高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。**
[外链图片转存中…(img-FIZQ61NA-1714995100019)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!