Android问题汇总(遥远的回忆过去)Android面试准备(遥远的憧憬未来)

Android/Java/移动端-刷题系列-3-Service服

2020-02-15  本文已影响0人  MonkeyLei

目录:

A. Java基础相关-1-字符串、类、泛型、==、equals等

B. 注解、自定义注解、反射简单复习

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中弹出对话框

CSDN-专业IT技术社区-登录

这个后面会跟源码深入复习。。 这里目前先简单实践下。

另外包括NEW_TASK属性这些都要专门看看。

记录一把。。开篇一下。。。打印的80多页面试题,尽快过一遍。。。挑一些点来搞搞。让自己有点印象,然后屡屡思路和大纲。。菜的很, 勿喷....谢谢。。我只想多看点是一点。。。

之前服务的相关学习:

MonkeyLei:Android-Service学习鸭-入门实践-本地服务(bindService方式)

MonkeyLei:Android-Service学习鸭-入门实践-远程服务(bindService方式-AIDL)

上一篇下一篇

猜你喜欢

热点阅读