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状态直接放置到任务栈的顶端,则你的程序又可以继续执行了。
消除警告解决办法:
退出虚拟机的程序从新运行一遍。
电话拨号器代码:
package com.example.phonedialer; import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity { private EditText et_number; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加载一个布局
setContentView(R.layout.activity_main);
//找到我们关心的控件;通过源码得知EditText继承TextView,TextView继承自View,所以可以这样写。
et_number = (EditText) findViewById(R.id.editText1); //找到按钮;通过源码得知Button继承自TextView,TextView继承自View,所以可以这样写。
Button btn_call = (Button) findViewById(R.id.button1);
/**
* 方法里面接收的参数是OnClickListener类型,发现它是一个接口类型。
* Interface definition for a callback to be invoked when a view is clicked.
* 定义了一个接口类型,注册了一个回调事件,当一个view被点击的时候走这个回调方法。
*/
btn_call.setOnClickListener(new MyClickListener());
/**
* 这里的this(context也就是上下文的意思),代表MainActivity。查看源码可以得知
* MainActivity继承自Context.
*/
//Toast.makeText(this, text, duration) }
/**
* 定义一个类,去实现按钮需要的接口类型
*/
private class MyClickListener implements OnClickListener { /**
* Called when a view has been clicked.
* 当按钮已经被点击的时候调用该方法。
*/
@Override
public void onClick(View v) {
/**
* 获取EditText控件的文本内容,第一时间想到通过et_number来获取,
* 但是这个变量不是全局变量,获取不到。所以需要将它变成全局变量。
* Return the text the TextView is displaying
* 返回TextView显示的内容。
* Editable android.widget.EditText.getText()
*/
String number = et_number.getText().toString().trim();
if("".equals(number)) {
/**
* context上下文
* The method makeText(Context, CharSequence, int)
* in the type Toast is not applicable for the arguments (MainActivity.MyClickListener, String, int)
* 这里的this代表的是MainActivity.MyClickListener,需要的是一个Context,所以编译报错。
* 通过类名.this可以设置吐司要在哪个Activity显示。LENGTH_SHORT 0 LENGTH_LONG 1
*/
Toast.makeText(MainActivity.this, "number不能为空", Toast.LENGTH_SHORT).show();
return;
}
//拿到number进行拨打电话.
/**
* 因为拨打电话的代码谷歌工程师已经写好了,所以不需要我们手动写逻辑,我们只需要
* 把它调起来就可以了。意图:Intent
*/
Intent intent = new Intent();
//设置动作 打电话。
intent.setAction(Intent.ACTION_CALL);
//设置打的数据 uri数据。Uri data
/**
* Url:统一资源定位符
* Uri:统一资源标识符 自己定义的路径想代表什么就代表什么。
*/
intent.setData(Uri.parse("tel:"+number));
//开启意图
startActivity(intent); } } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }
Telephone dialer的更多相关文章
- Android之Dialer之紧急号码
Android之Dialer之紧急号码 e over any other (e.g. supplementary service related) number analysis. a) 112 an ...
- 6754 Keyboard of a Mobile Telephone
/*实践再次说明ch=getchar()的速度非常慢*/ /*大水题,不解释*/ #include<stdio.h> #include<string.h> int main() ...
- 【poj4011】Automated Telephone Exchange
题目:Automated Telephone Exchange poj URL:http://poj.org/problem?id=4011 原题如下图: 题意: 就是一个三位数减去两个小于或等于99 ...
- Morgan Stanley telephone interview
Today is Monday, April 28. I get a telephone call from Morgan Stanley in Shanghai. My examiner is a ...
- BZOJ1614: [Usaco2007 Jan]Telephone Lines架设电话线
1614: [Usaco2007 Jan]Telephone Lines架设电话线 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 892 Solved: ...
- Automated Telephone Exchange
Time Limit: 3000MS Memory limit: 65536K 题目描述In St Petersburg phone numbers are formatted as “XXX–XX– ...
- POJ3662 Telephone Lines( dijkstral + 二分 )
POJ3662 Telephone Lines 题目大意:要在顶点1到顶点n之间建一条路径,假设这条路径有m条边,其中有k条边是免费的,剩余m-k条边是要收费的, 求这m-k条边中花费最大的一条边的最 ...
- poj 3662 Telephone Lines(好题!!!二分搜索+dijkstra)
Description Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone compa ...
- BZOJ 1614: [Usaco2007 Jan]Telephone Lines架设电话线
题目 1614: [Usaco2007 Jan]Telephone Lines架设电话线 Time Limit: 5 Sec Memory Limit: 64 MB Description Farm ...
随机推荐
- [CocoaPods]入门
什么是CocoaPods? CocoaPods管理Xcode项目的库依赖项. 项目的依赖项在名为Podfile的单个文本文件中指定.CocoaPods将解析库之间的依赖关系,获取生成的源代码,然后在X ...
- 【不遮遮掩掩】Github上传本地代码以及常见问题解决方案
2019.20.18更新: 把完整命令打一遍吧,不然看完太累了不是 //初始化文件夹 git init //初始化目录,把基本文件下载下来,如ignore文件 git pull --rebase or ...
- Liferay7 BPM门户开发之3: Activiti开发环境搭建
下载地址: http://activiti.org/download.html 源码: https://github.com/Activiti/Activiti 环境准备(检查项): JDK 1.7 ...
- 【LeetCode】13. 罗马数字转整数
题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为 ...
- Java开发技术大揭底——让你认知自己技术上的缺陷,成为架构师
一.分布式架构体系 分布式怎么来的.传统的电信.银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正也不缺钱,IBM小型机,大型机,采购了堆 ...
- hdu 6161--Big binary tree(思维--压缩空间)
题目链接 Problem Description You are given a complete binary tree with n nodes. The root node is numbere ...
- git新建远程分支后 pycharm本地看不到 处理方式
远程仓库新建分支:odoo_test_env 首先切换到本地代码git init目录:git remote update origin --prune odoo@odoo-test:~/odoosha ...
- LeetCode刷题指南(字符串)
作者:CYC2018 文章链接:https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Leetcode+%E9%A2%98%E8%A7% ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十四):权限控制(Shiro 注解)
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 技术背景 当前,我们基于导航菜单的显示和操作按钮的禁用状态,实现了页面可见性和 ...
- PHP正则表达式修饰符的种类及介绍
◆i :如果在修饰符中加上"i",则正则将会取消大小写敏感性,即"a"和"A" 是一样的.◆m:默认的正则开始"^"和结 ...