方案一可以使用以下1、2两种方法实现,方案二可以使用以下方法3实现。(部分转载)

1、使用隐匿intent的方式调用,比较简单

首先在自己应用的Mainifest.xml中加入如下代码:

android:launchMode="singleTask">

这里的“com.mhwang.CallActivity ”就是提供的activity的包名及位置, 就是对方要调用你的界面所提供的动作,当然事先得告诉对方。然后对方才可以在他那边调用。

调用代码如下所示:

Intent intent = new Intent();

intent.setAction("android.intent.mhwang.CALL");

startActivity(intent);

}catch (Exception e){

Toast.makeText(this,"请先安装该app",Toast.LENGTH_SHORT).show();

}当调用出错时或者没有安装该APP时,会报出提示。

2、利用ComponentName方式,这种方式不用提供者刻意在MainFest.xml中修改activity属性,调用者只要知道提供者的包名和Activity名就可以了。

Intent intent = new Intent();

ComponentName name = new ComponentName("com.mhwang.test"

,"com.mhwang.test.CallActivity");

intent.setComponent(name);

startActivity(intent);

}catch (Exception e){

Toast.makeText(this,"请先安装该app",Toast.LENGTH_SHORT).show();

}3、使用广播形式,这种方法要求在被调用的APP中,编写一个广播接收器来启动Activity。

public class CallReceiver extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

if(intent.getAction().equals("android.intent.mhwang.CALL")){

Intent i = new Intent(context,CallActivity.class);

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i);

}

}

}

需要注意的是,i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);不可以漏掉,不然启动不了,因为context.startActivity与我们平时的直接startActivity是不一样的,具体区别可以查阅资料,所以在广播中调用Activity时,需要加上i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 还有,不要忘记注册静态广播。

最后,调用都需要调用的时候只要发送一个广播就可以了。

Intent intent = new Intent("android.intent.mhwang.CALL");

sendBrocadcast(Intent);

android app唤醒机制,Android平台下APP唤醒机制相关推荐

  1. android 行车记录仪分析,基于Android的智能行车记录仪的设计与实现.doc

    基于Android的智能行车记录仪的设计与实现 摘要:移动互联网的出现,极大的方便了人们的衣食住行,同时人们当下对行车安全非常看重,因此设计一款智能行车记录仪APP便可以解决行车安全中的一些需求,如有 ...

  2. android 行车记录仪分析,基于Android智能行车记录仪设计及实现.doc

    基于Android智能行车记录仪设计及实现 基于Android智能行车记录仪设计及实现 摘要:移动互联网的出现,极大的方便了人们的衣食住行,同时人们当下对行车安全非常看重,因此设计一款智能行车记录仪A ...

  3. MacOs平台下 Vs2022 for Mac、Xamarin、IOS Android 双平台证书申请、开发环境配置、实机测试、内部分发B(贝塔)测试、 App store发布 超详细(多图)全程笔记

    本文超长,含盖从前期准备到发布的全程细节,多图杀猫-- 这些天,研究使用Visual studio for macos做ios和android双平台开发.遇到最大的坑就是apple开发各种证书.真机测 ...

  4. Android后台Kill(二):ActivityManagerService与App现场恢复机制

    本篇是Android后台杀死系列的第二篇,主要讲解ActivityMangerService是如何恢复被后台杀死的进程的(基于4.3 ),在开篇 FragmentActivity及PhoneWindo ...

  5. Android 之窗口小部件详解--App Widget

    1 App Widget简介 App Widget是应用程序窗口小部件(Widget)是微型的应用程序视图,它可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新.你可以通过一个App Widge ...

  6. Android的APP多版本,Android多版本共存-基于gradle实现debug版和release版app共存

    在开发中,测试环境与正式环境是分开的,常常需要修改配置打不同环境下的apk,而且如何在android平台下让debug和release的app共存?本着提高效率避免重复工作的目的与大家分享一个方案. ...

  7. [置顶] Android基于Bmob第三方后台开发的App——足说

    标签: androidGithubMD风格MVPbmob 2016-05-31 21:25  4565人阅读  评论(8)  收藏  举报   分类: Android(35)  版权声明:本文为博主原 ...

  8. Android基于Bmob第三方后台开发的App——足说

    重大声明: 2019-07-29:目前正在改版,准备自己写后端服务,不再使用bmob,第三方终究不靠谱 2019-06-13:由于bmob与其使用的图片上游服务商-又拍云停止合作,导致上传的图片都无法 ...

  9. android获取app用户数据,Android 原生app获取用户授权访问Autodesk云应用数据

    oAuth机制对于网站间的授权管理是很容易实现的,设置好app回调端口,当数据服务提供方拿到其用户授权,则返回授权码发送到回调端口.上一篇文章介绍了如何授权Forge app访问Autodesk 云应 ...

最新文章

  1. deepin-Code::Blocks安装与配置
  2. Zookeeper的作用
  3. 查询GC得到森林里主域和子域的帐号
  4. jqurey datatables属性
  5. 121 Best Time to Buy and Sell Stock
  6. kbmmw中向服务器端传递对象的一种简单方式
  7. 手把手教你建立用户画像和用户场景
  8. HTTP权威指南记录 ---- HTTP报文
  9. [vscode] python debugging
  10. php规范PSR-3(日志接口)
  11. 实时互动白板_使用froala文本编辑器构建实时协作白板第1部分
  12. Servlet 容器
  13. 第12期 《博观而约取,厚积而薄发》6月刊
  14. 小米十周年,雷军卖情怀
  15. centos7 设置外部访问
  16. jenkins邮件模板配置
  17. 内连接、外连接、全外连接、交叉连接用法汇总(个人记录使用)
  18. exFAT和NTFS哪个好
  19. 短视频开发要注意哪些问题?
  20. 如何判别NOR FLASH 还是 NAND FLASH?

热门文章

  1. CSS实现段落首行缩进两个字符
  2. c#中关于list去重的问题
  3. 中国10大古镇冬装照,美醉了!
  4. openlayers Text字体大小设置
  5. windows xp下反查五笔编码问题
  6. 删除流氓软件小黑记事本流氓代码HNShell64.dll
  7. h1z1加载服务器锁定状态,h1z1读取服务器锁定状态 | 手游网游页游攻略大全
  8. mof定制材料|Cu-MOF-199/铜硫化合物(CuxS)复合材料Cu-MOF/CuxS|ZIF-8/聚乙烯醇复合纳米纤维膜聚乙烯醇PVA
  9. elasticsearch 简单使用
  10. 如何利用宝塔面板+nginx建立一个自己的网站(如博客图床等等)