如何实现无界面Android app

无界面Activity或者APP的实现 最近在做一个谷歌语音调用APP设置闹钟的Issue,查看官方文档发现谷歌语音发送Intent给App时需要启动一个Activity,能不能使用Service或者广播去接收Intent呢?答案是不行的,使用普通的Activity有一个问题:每次语音发送Intent给APP的Activity的时候都要启动一次Activity,并且在无法接收到来自Activity的返回信息时,谷歌语会不断发送Inten... 阅读详情
AI摘要

本文介绍如何创建一个无界面的Android应用,通过设置MainActivity为不显示,并启动后台Service来实现。主要内容包括AndroidManifest.xml配置、MainActivity及MyService的实现。

前言

在Android开发中,可能会遇到只需要在后台运行服务,不需要界面的情况,接下来说一下如何实现无界面APP。

代码实现

AndroidManifest.xml

将AndroidManifest.xml的主activity配置为不展示模式:

android:theme="@android:style/Theme.NoDisplay"

然后添加需要运行的service:

<service android:name=".MyService"/>

以下为完整示例代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.serviceapp">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <!--设置activity为不显示-->
        <activity
            android:name=".MainActivity"
            android:theme="@android:style/Theme.NoDisplay"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:name=".MyService"/>
    </application>

</manifest>

MainActivity.java

在MainActivity中启动需要运行的service,如下为示例代码:

package com.example.serviceapp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //启动service
        Intent service = new Intent(MainActivity.this, MyService.class);
        MainActivity.this.startService(service);
    }

    //8.0以上手机需要添加此代码才能正常运行
    public void onResume() {
        super.onResume();
        finish();
    }
}

MyService.java

编写需要运行的service的代码,以下为示例代码,service运行过程中打印日志,便于观察service是否正常运行:

package com.example.serviceapp;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        Log.v("Jason", "MyService onBind");
        return null;
    }

    @Override
    public void onCreate() {
        Log.v("Jason", "MyService onCreate");
        super.onCreate();
    }

    @Override
    public void onStart(Intent intent, int startId) {
        Log.v("Jason", "MyService onStart");
        super.onStart(intent, startId);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.v("Jason", "MyService onStartCommand");
        ExecutorService threadPool = Executors.newCachedThreadPool();
        threadPool.execute(new Runnable() {
            @Override
            public void run() {
                int time = 0;
                while(true) {
                    Log.d("Jason", "time:" + time);
                    try {
                        Thread.sleep(10000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    time++;
                }
            }
        });

        return super.onStartCommand(intent, flags, startId);
    }
}
uni-app打包成安卓app步骤详解 前置: 开发环境 Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区 HBuilderX App离线SDK下载:最新android平台SDK下载 3.1.10版本起需要申请Appkey,具体请点击链接 正文: 通过uni-app实现一套代码在微信小程序和安卓端app同时适配 1.创建文件 创建Demo文件,采用uni-app 模板 2.创建应用 在https://dev.dcloud.net.cn/app页面创建相同名称的应用,并且获取 阅读详情

相关推荐

Android实现无界面Android app类似提供某些服务功能 (附完整源码)

Android实现无界面Android app类似提供某些服务功能 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 622

andriod无界面app开发

android无界面app开发

aaliliaa的博客 1364

Android Service无图标/界面独立运行

1、startService开启服务以后,与activity就没有关联,不受影响,独立运行,需要stopService关闭,否则Activity移除栈后将一直运行(kill杀不死). 2、bindService开启服务以后,与activity存在关联,退出activity时必须调用unbindService方法关闭,否则会报ServiceConnection泄漏的错误.

AndroidManifest.xml文件注册ACTIVITY,确定以个MAINACTIVITY

ANDROID:LABEL给以个标题名 &lt;action android:name="android.intent.action.MAIN"/&gt;确定ACTIVITY是以个MAIN的活动 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;manifest xmlns:android="http://schemas.android.com/.

qq_36592247的博客 3452

国密证书实战:在CentOS 7上构建GmSSL私有CA与完整证书链

本文详细介绍了在CentOS 7操作系统上,使用GmSSL工具构建私有国密证书颁发机构(CA)与完整证书链的实战指南。内容涵盖从部署GmSSL、创建国密根CA、签发服务器与客户端证书,到生产环境安全加固与最佳实践的全流程,旨在帮助系统管理员和安全工程师建立统一、可控的内部国密安全通信体系。

jenkins8butler的博客 496

汇川Easy 301 和MCGS进行Modbus RTU通讯(485)浮点数读取和写入

4DF0001对应寄存器D0,4DF0003对应寄存器D2。注意:要选com2口,com1口是232通讯。

qq_61916672的博客 2901

Android实现无界面Android app类似提供某些服务功能(附带源码)

Android实现无界面Android app类似提供某些服务功能(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1312

优快云余额充值前必读:这5个隐藏条款,90%的开发者都忽略了(附iOS内购避坑指南)

本文揭示了优快云余额充值中90%开发者忽略的5个隐藏条款,包括不可退款规则、iOS内购限制、账号安全责任等关键内容,特别提供了iOS内购避坑指南,帮助开发者避免资金损失和账号风险。

weixin_26765287的博客 147

Android实现无界面无图标App最简单的方式

背景: 有时候你的app只需要一个服务来做一些辅助功能,需要实现以下两个特点: 没有界面 图标在不桌面上显示 两步走: 1、 MainActivity声明中去掉category: <activity android:name=".MainActivity"> <intent-filter> ...

侠亦狐的博客 1万+

VB.net:VB.net编程语言学习之ADO.net基本名称空间与类的简介、案例应用(实现与SQL数据库编程案例)之详细攻略

ADO.net有六个基础名称空间,除此之外,每个新的数据提供程序还可以有自己的名称空间,如Oracle。在.net中就提供了System.Data.OracleClient名称空间(用于Microsoft建立的Oracle数据库提供的程序)ADO.net体系结构的另一个核心元素是.Net数据提供程序(Data Provider),它的组件用于进行数据处理(和DataSet的数据访问功能相对应)。:是ADD.net核心名称空间,它包含所有数据提供程序使用的类,这些类表示表、列、行,还有DataSet类;

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1732

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(三)

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(三)

宁波阿成的博客 524

无界面安卓app

无界面的app(对于非系统的应用没有activity无法启动service),但可以使用主题 @android:style/Theme.NoDisplay 来隐藏Activity达到无界面的app效果。 (http://zhidao.baidu.com/link?url=Knchb3CqJsr6Wfi6gd1xR-MXxn_7NqOrKwS -C1B74kEGiWIxv_UsPCLikZt5

qq_22232431的博客 6504

Python爬虫实战:中国土地市场网招拍挂数据抓取与分析

本文详细介绍了如何使用Python爬虫技术从中国土地市场网抓取土地招拍挂数据,并进行初步的数据分析与可视化。文章涵盖了爬虫的基本原理、反爬虫策略应对、数据清洗与存储、数据分析与可视化等多个方面,为土地市场研究者提供了一套完整的数据获取与分析解决方案。

2201_76125261的博客 684

【Android】App与App之间的交互

App与App之间的交互知识点分析:一. 插件App:(一)修改activity的清单文件完整的代码如下:(二)对插件activity下手(三)打包这个插件并安装到手机上面,安装完成之后只能在系统的应用管理界面才能找到==重点是在插件的回调中,一定要先 setResult(int resultCode, Intent data)的后面马上调用finish(),而且不能在其之前调用finish()=...

chy_sky的博客 1830

Android14 SystemUI如何实现下拉菜单栏高斯模糊背景效果(类似于毛玻璃效果)

我们都知道,从Android12起,下拉菜单栏控制中心都是黑色的,看起来非常不美观,而且国内的手机系统UI都做的比较美观,大部分的下拉菜单UI背景都是实现了高斯模糊效果,所以客户也会要求实现类似于这样的效果。在以前的Android项目中,实现下拉菜单栏的模糊背景就是通过截图的方式进行替换背景,而这种方式下拉菜单背景极易替换不了,就算是在各个地方都适配,还是有概率在复杂场景或者一些测试手法下出现背景是黑的情况,并且这种方式还比较影响性能,毕竟每次都要去截图一次,多做了额外的事。

热衷于Android Framework和系统APP的修改经验分享 1793

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android 拨号启动秘密app 无界面 receiver

至少在API=8,android还是支持无界面app的,比如一个app只有一个receiver,实现特定的功能;但到至多android 4.0已经默认不支持这样只有一个receiver的app了,即app必须具有activity,至于系统内置的无activity的app如何配置的,我还不清楚,但大部分情况下,android应该不允许无activity视图的app的receiver运行的,像接下来要

539

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Android 使用暗码启动App

Android 使用暗码启动App      暗码,比如*#06#查看手机IMEI号。*#06#就是一个暗码。    我们可能有时会有这样的需求,比如我想通过手机拨号来启动一个内置无界面的app(假设拨*#*#6636#*#*),那该如何实现?   既然暗码是点击拨号按钮启动的,那么肯定是在源码Dialer 中通过全局广播形式发给其他内置app的,废话不多说,进入Diale

天山一客 的专栏 2579

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android开机启动无界面后台程序【转】

来自:http://blog.youkuaiyun.com/mirkerson/article/details/17612325 一个安卓小程序,这个程序没有界面,也不会在桌面创建应用程序图标 当然,在“设置”中的应用程序管理是可以看到的,也可以把这个应用程序删除 简单的说,这是一个没有界面的后台运行的应用程序 而且,还有一功能:开机自启动,启动运行一个服务 程序

shareinfo2018 1939

基于安卓android studio 的 菜谱食谱APP设计

一 项目概述 菜谱APP或者食谱APP 是基于安卓开发的一个APP,项目包含前台安卓端和后台管理系统,前台安卓端可以进行 查看推荐菜谱,菜谱搜索,收藏菜品 ,菜品排行榜,菜品详情,个人中心,基本信息,登录,注册等功能,后台管理系统主要维护菜品,维护前台注册的用户。东西非常多。 二 项目开发工具和技术 开发工具使用android studio 后台服务开发 idea或者eclipse 模拟器:逍遥 夜神或者雷电模拟器 三 项目功能结构图 四 项目开发实现 菜谱首页效果: 首页包含顶部导航,菜品分类 ,

coder1998的博客 3万+

Android(安卓)APP渗透测试-总结

文章目录基础知识安卓系统目录结构组件基础APK目录结构ADB使用Drozer客户端安全测试反编译测试(脱壳与混淆)脱壳回编译测试本地敏感信息存储四大组件安全本地注入动/静态扫描安全的通信方式HOOK开源移动端扫描工具APP安全在线检测系统服务端渗透测试SSL证书抓包问题安装证书问题证书校验问题 前言:这是一份资料整理,不是一份教程,教程在“心中”。 很多时候对产品进行测试,但是总会遇到一些重复的问题,后来发现大部分时间都花在问题检索和筛选上了(检索五分钟,测试一分钟),因此有了这份总结。学会把时间花费在有意

H5oSir 2万+

win11怎么安装安卓app win11上安装安卓app的步骤教程

微软win11最为亮眼的就是windows系统终于可以兼容原生安卓app了,但是很多安装了win11的朋友发现安装不了安卓app,今天小编来跟大家说说win11安装安卓app的步骤教程吧,更多win11教程可以参考小白刷机网 win11安装安卓app的步骤如下: 升级了win11系统后,首先需要在自己电脑安装一个名为 “ Windows Subsystem for AndroidTM with Amazon Appstore ” 的东西。 它包含两个软件,分别是 Windows Subsystem

qq_29508575的博客 6万+

【Android】5+APP 打包安卓

使用HTML5 PLUS 结合安卓进行安卓APP的开发 使用工具: HBuilderX Android Studio App离线SDK 使用技术 Android 开发知识(java基础知识等) 网页开发知识(html、css、js、jquery等) 文章目录使用HTML5 PLUS 结合安卓进行安卓APP的开发基本步骤:1. 创建 本地安卓项目2. 在HBuilder中创建H5+ 项目3. 将创建的5+APP项目打包配置到Android项目中4. 使用Android studio打包程序

冷芝士鸭的学习笔记 5244

android 无界面service编程

Android 创建单独的服务运行在后台(无界面) https://blog.youkuaiyun.com/qq503690160/article/details/78859685 Android实现无界面无图标App最简单的方式 https://blog.youkuaiyun.com/qq_35584878/article/details/100553769?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.ch

az44yao的专栏 1493
上一篇: 查看安卓手机文件系统方法
下一篇: 如何实现Android app开机自启动
Jason_Flash
博客等级 码龄7年 1万+粉丝 51原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值