目录:
A. Java基础相关-1-字符串、类、泛型、==、equals等
C.MonkeyLei:Android/Java/移动端-刷题系列-3-Service服务中启动界面?NEW_TASK?
我是看面试题看到进程和线程的区别那块,然后就联想到android,联想到android:process,Service,Activity这些。。。
一个Android应用程序启动后就会有一个独立进程活着,然后依附这个进程(UI线程做了一系列渲染,搞出了我们的界面)。 我们可以开启多线程来搞事情,搞完事情可以通过进程间通信方式来通知UI线程进行渲染。 这又会蹦出一系列知识,handler,binder,aidl等等。。。
而针对Service,我们启动了一个纯粹的Service,并不是说这个Service就会有一个独立的进程运行。不是这样的,而是这个Service会依附这个进程活着。
情况1: 不指定process属性
如果服务启动了,然后我们杀死了主程序,则服务也会随之结束
情况2: 指定了process属性,这个服务就能够独立活着,进程就会存在。当然目前的手机系统并不能轻松的做保活了,不要想靠以往的方式做稳定性保活。。如果你是xx信,或许就可以给你白名单...
如果当然服务里面是可以启动跳转界面的,必须有Intent.FLAG_ACTIVITY_NEW_TASK属性
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// Let it continue running until it is stopped.
Toast.makeText(this, "服务已经启动", Toast.LENGTH_LONG).show();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Intent intent1 = new Intent(PpService.this, SecondActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent1);
}
}, 3000);
return START_STICKY;
}
也可以弹窗。但是只能是系统提供的,自定义的不得行。而且目前需要权限的。Android 如何在Service中弹出对话框
这个后面会跟源码深入复习。。 这里目前先简单实践下。
另外包括NEW_TASK属性这些都要专门看看。
记录一把。。开篇一下。。。打印的80多页面试题,尽快过一遍。。。挑一些点来搞搞。让自己有点印象,然后屡屡思路和大纲。。菜的很, 勿喷....谢谢。。我只想多看点是一点。。。
之前服务的相关学习:
网友评论