Telephone dialer
运行电话拨号器,需要加这个权限,否则不会打通电话。这个权限是用户权限,是谷歌工程师为了跟自己撇清关系,用户需要权限的时候自己加。
运行android程序的时候提示:ActivityManager: Warning: Activity not started, its current task has been brought to the front这是因为:
这个不是Android平台的Bug,而是Android本身就是这样一种处理机制。
我们在Android平台下,通过返回按钮,或者程序本身的退出操作,去结束一个进程的时候,实际上Android虚拟机未必会将这个进程真正的结束掉,在内存允许的情况下,这个程序会以缓存的形式存在Android虚拟机中。只有在内存不足的情况下时,Android系统会清理长时间不被激活的任务,以为其他程序提供内存。
Android这样做,是为了你下一次更加快速的启动这个程序。
所以,出现楼主这种情况,是在你的程序没有发生任何变化,并且内存足够的情况下,会将上一次执行的程序,从缓存Cached状态直接放置到任务栈的顶端,则你的程序又可以继续执行了。
消除警告解决办法:
退出虚拟机的程序从新运行一遍。
电话拨号器代码:
1 package com.example.phonedialer; 2 3 import android.net.Uri; 4 import android.os.Bundle; 5 import android.app.Activity; 6 import android.content.Intent; 7 import android.view.Menu; 8 import android.view.View; 9 import android.view.View.OnClickListener; 10 import android.widget.Button; 11 import android.widget.EditText; 12 import android.widget.Toast; 13 14 public class MainActivity extends Activity { 15 16 private EditText et_number; 17 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 //加载一个布局 23 setContentView(R.layout.activity_main); 24 //找到我们关心的控件;通过源码得知EditText继承TextView,TextView继承自View,所以可以这样写。 25 et_number = (EditText) findViewById(R.id.editText1); 26 27 //找到按钮;通过源码得知Button继承自TextView,TextView继承自View,所以可以这样写。 28 Button btn_call = (Button) findViewById(R.id.button1); 29 /** 30 * 方法里面接收的参数是OnClickListener类型,发现它是一个接口类型。 31 * Interface definition for a callback to be invoked when a view is clicked. 32 * 定义了一个接口类型,注册了一个回调事件,当一个view被点击的时候走这个回调方法。 33 */ 34 btn_call.setOnClickListener(new MyClickListener()); 35 /** 36 * 这里的this(context也就是上下文的意思),代表MainActivity。查看源码可以得知 37 * MainActivity继承自Context. 38 */ 39 //Toast.makeText(this, text, duration) 40 41 } 42 /** 43 * 定义一个类,去实现按钮需要的接口类型 44 */ 45 private class MyClickListener implements OnClickListener { 46 47 /** 48 * Called when a view has been clicked. 49 * 当按钮已经被点击的时候调用该方法。 50 */ 51 @Override 52 public void onClick(View v) { 53 /** 54 * 获取EditText控件的文本内容,第一时间想到通过et_number来获取, 55 * 但是这个变量不是全局变量,获取不到。所以需要将它变成全局变量。 56 * Return the text the TextView is displaying 57 * 返回TextView显示的内容。 58 * Editable android.widget.EditText.getText() 59 */ 60 String number = et_number.getText().toString().trim(); 61 if("".equals(number)) { 62 /** 63 * context上下文 64 * The method makeText(Context, CharSequence, int) 65 * in the type Toast is not applicable for the arguments (MainActivity.MyClickListener, String, int) 66 * 这里的this代表的是MainActivity.MyClickListener,需要的是一个Context,所以编译报错。 67 * 通过类名.this可以设置吐司要在哪个Activity显示。LENGTH_SHORT 0 LENGTH_LONG 1 68 */ 69 Toast.makeText(MainActivity.this, "number不能为空", Toast.LENGTH_SHORT).show(); 70 return; 71 } 72 //拿到number进行拨打电话. 73 /** 74 * 因为拨打电话的代码谷歌工程师已经写好了,所以不需要我们手动写逻辑,我们只需要 75 * 把它调起来就可以了。意图:Intent 76 */ 77 Intent intent = new Intent(); 78 //设置动作 打电话。 79 intent.setAction(Intent.ACTION_CALL); 80 //设置打的数据 uri数据。Uri data 81 /** 82 * Url:统一资源定位符 83 * Uri:统一资源标识符 自己定义的路径想代表什么就代表什么。 84 */ 85 intent.setData(Uri.parse("tel:"+number)); 86 //开启意图 87 startActivity(intent); 88 89 90 91 } 92 93 } 94 95 96 97 @Override 98 public boolean onCreateOptionsMenu(Menu menu) { 99 // Inflate the menu; this adds items to the action bar if it is present. 100 getMenuInflater().inflate(R.menu.main, menu); 101 return true; 102 } 103 104 }
转载于:https://www.cnblogs.com/lzp123456-/p/9651428.html
Telephone dialer相关推荐
- b2g Introduction(Boot To Gecko)
B2G是"Boot To Gecko"的缩写,是Mozilla公司基于Web标准开发的完全开放的移动操作系统,从系统本身到应用程序完全由HTML5.CSS和JS来写的.主要由3个部 ...
- poj 3662 Telephone Lines(好题!!!二分搜索+dijkstra)
Description Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone compa ...
- 牛客假日团队赛8:F.Telephone Lines(二分+spfa)
链接:https://ac.nowcoder.com/acm/contest/1069/F 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...
- bzoj1705[Usaco2007 Nov]Telephone Wire 架设电话线(dp优化)
1705: [Usaco2007 Nov]Telephone Wire 架设电话线 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 441 Solved ...
- Telephone Wire(POJ-3612)
Problem Description Farmer John's cows are getting restless about their poor telephone service; they ...
- Telephone Linse(POJ-3662)
Problem Description Farmer John wants to set up a telephone line at his farm. Unfortunately, the pho ...
- P1948 [USACO08JAN]Telephone Lines S(二分+spfa)
题目描述 Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone company is u ...
- Telephone Calls
1. ACTION_DIAL 不需要permission,但是需要在Dialer中手动点击拨号按钮,这种情况下,可以用ACTION_CAll,可以直接打电话,但需要CALL_PHONE的permiss ...
- Android 系统(125)---Android通过Dialer实现暗码启动
Android通过Dialer实现暗码启动 目前接触比较多的就是通过dialer应用来启动/触发暗码. 本文以Dialer为例, 1.经过调试定位,发现拨号盘接对应的Activity为Dialtact ...
最新文章
- jenkins的使用
- dataset中的数据批量导入oracle数据库,c#如何将dataset中的数据批量导入oracle数据库...
- sequence跳号问题及解决办法
- c++11 string u8_深入理解C++11:C++11新
- 【NOI2012】迷失游乐园【概率期望】【换根dp】【基环树】
- oracle存储过程没有返回值,Java调用Oracle存储过程(无返回值)
- Crust Network将于1月14日12点开始暂停HTTP版本应用
- ERP的模块流程/组织架构和其他基础知识
- 网络语言维c是什么意思,我不要你觉得,我要我觉得!19年网络流行词是这些!...
- 天津大学计算机学院李晨曦,【奋斗·青春】最美的不是牵手,而是携手一起读研——访保研至天津大学的情侣学霸许贤哲与李晨曦...
- OSChina 周四乱弹 ——Iphone7出了开始做牛做马了
- iPhone通讯录导入及备份方法
- 计算机网络之TCP四次挥手
- 哪款蓝牙耳机降噪好?值得推荐的降噪蓝牙耳机!
- ssm框架基于javaEE的企业办公OA管理系统
- java正则开头结尾_以m开头以d结尾的正则表达式-正则表达式以什么开头-正则表达式不以0开头...
- 开始使用FCKeditor了
- 机器学习实验—K-MEANS聚类
- Linux下cp命令
- 软件测试之性能测试流程
热门文章
- 移动WebApp开发-phoneGap+android入门(http://blog.csdn.net/cwb1128/article/details/18004505)
- Oracle19c数据库服务
- 搜索引擎关键字智能提示实践
- “2012年全国职业院校技能大赛”高职组信息安全管理与评估赛项获奖名单
- 苹果怎么截图?教你各种iPhone机型截屏方法
- 5.2 C语言练习(电报加密:输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)。)
- 我在xxx公司的日子 2017.11.1
- Highly Efficient Natural Image Matting
- Visual GDB不能在线调试,出现Received a SIGTRAP:Trace/breakpoint trap
- 如何设计 QQ、微信等第三方账号登陆 ?(附表设计)