`

android > 调用拨打电话 并子线程监控然后返回跳转

 
阅读更多

 

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    <TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="inputphonenumber"
    />
    <EditText
    android:id="@+id/phonenumber"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:phoneNumber="true"
    />
    <Button
    android:id="@+id/btn_call"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="CALL"
    />
</LinearLayout>

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="test.mft"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="test.mft.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
	<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> 
</manifest>

 

main.java

package test.mft;


import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
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 {
    /** Called when the activity is first created. */
	private Context Tcontext;
	//hander
	private final int HANDER_CALL_RETURN = 1;	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Tcontext = MainActivity.this;
        Button btn_call = (Button) findViewById(R.id.btn_call);  
        
        btn_call.setOnClickListener(new OnClickListener() {  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                EditText et_phonenumber = (EditText)findViewById(R.id.phonenumber);  
                String number = et_phonenumber.getText().toString();  
                Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));  
                startActivity(intent); 
                new ToCall();
                MainActivity.this.finish();
            }  
        });
        
        
        
    }
    
	class ToCall {
		public ToCall() {
			// TODO Auto-generated constructor stub
			new Thread(){  
	            @Override  
	            public void run() {  
	                // TODO Auto-generated method stub    
	                  try  
	                  {   
	                	  	sleep(5000);  
	                        Message message = Message.obtain();   
	                        message.what = HANDER_CALL_RETURN;  
	                        hander.sendMessage(message); 
	                  }  
	                  catch (Exception e)  
	                  {  
	                    e.printStackTrace();  
	                  }  
	                  finally  
	                  {  
	                    // 卸载所创建的myDialog对象  
	                  }  
	                  
	            }  
	        }.start();  
			
		}
	}
	Handler hander = new Handler() {  
	    public void handleMessage(Message msg) {  
	        int handerType = (int) msg.what;   
	        switch (handerType) {  
	                case HANDER_CALL_RETURN:  
	                	Toast.makeText(Tcontext,"弹出窗口关闭咯", Toast.LENGTH_LONG).show(); 
	                	Intent intent = new Intent();  
	                    intent.setClass(MainActivity.this, MainActivity.class);  
	                    Tcontext.startActivity(intent);  
	                    break; 
	                default:  
	                    break;  
	        }  
	  
	    };  
	};  
}


 

 

 

分享到:
评论

相关推荐

    安卓开发-Android多线程断点续传下载+在线播放音乐.zip.zip

    在安卓应用开发中,实现多线程断点续传下载和在线播放音乐是两个重要的功能。下面我们将深入探讨这两个主题。 一、Android多线程断点续传下载 1. 多线程下载:在传统的单线程下载中,整个文件的下载过程由一个线程...

    android GifViewDemo源码.rar

    加载过程中需要注意线程安全,通常推荐在子线程中进行,然后通过`runOnUiThread()`更新UI。 7. **性能测试与优化**: 在实际应用中,GifView的性能至关重要。开发者需要进行性能测试,例如使用Systrace或Traceview...

    Android生命周期的演示程序

    在Android应用开发中,Activity是用户界面的基本单元,它的生命周期是开发者必须要深入理解的重要概念。这个"Android生命周期的演示程序"旨在帮助我们直观地了解Activity从创建到销毁的各个阶段,以及在不同操作下...

    android service练习

    5. 如果同时使用了`startService()`和`bindService()`,Service会在两个生命周期方法间跳转,先执行`onCreate()`和`onStartCommand()`,然后执行`onBind()`。 6. 当`stopService()`或所有绑定的客户端调用`...

    Android 开发技巧

    9.82、给模拟器打电话发短信 321 9.83、加快模拟器速度 321 9.83.1、模拟器 “尚未注册网络” 322 9.84、EMULATOR命令行参数 322 9.85、如何进行单元测试 323 9.86、ANDROID自动化测试初探 324 9.86.1、捕获Activity...

    Android开发技巧总汇

    这一部分旨在帮助初学者快速上手,并逐步熟悉Android开发的基本流程。 **预备知识**: - **搭建开发环境**:确保已安装好Android Studio及相关开发工具。 - **编写“Hello World”程序**:这是熟悉任何编程语言的第...

    android 简易

    - **Activity跳转**:通过Intent启动新的Activity,可以在一个Activity中调用`startActivity()`方法,并传入Intent对象。 - **数据传递**:可以在Intent中附加数据,接收端Activity可以通过Intent获取这些数据。 ##...

    Android应用源码面试题.zip

    8. **线程与并发**:AsyncTask、Handler、Looper、Message的理解,以及如何在Android中正确地进行多线程操作,避免UI阻塞。 9. **内存管理**:了解Dalvik和ART虚拟机的工作机制,如何避免内存泄漏,以及使用...

    传智播客_Andorid_Android项目手机卫士视频video_day01视频

    【Android项目手机卫士开发入门】 在Android平台上,开发一款名为“手机卫士”的应用程序是...随着学习的深入,你将接触到更多高级主题,如多线程、异步处理、动画效果、自定义View等,从而提升你的Android开发技能。

    Android小知识整理

    2. **Intent**:Intent是Android中用于启动服务、启动或跳转到另一个Activity的主要手段,分为显式Intent和隐式Intent。 3. **Fragment**:Fragment是Android 3.0引入的概念,可以在一个Activity中显示多个界面,...

    Android应用源码之(MediaPlayer音乐).zip

    2. **初始化MediaPlayer**: 在源码中,你需要先创建一个MediaPlayer对象,然后调用`setDataSource()`方法指定音频文件路径,可以是本地文件路径或URL。接着,调用`prepare()`或`prepareAsync()`来预加载媒体文件。`...

    2012最新java面试大全--很有帮助的

    在AndroidManifest.xml文件中使用`&lt;receiver&gt;`标签声明BroadcastReceiver,并使用`&lt;intent-filter&gt;`标签指定接收的广播类型。 ### 23. ContentProvider的作用是什么? ContentProvider为应用程序提供了访问数据的...

    Android Training Course in Chinese

    ### Android Training Course in Chinese #### 一、Android入门基础 - **建立第一个App** - 创建Android项目:通过Android Studio等开发工具,选择合适的模板快速搭建Android应用的基础框架。 - 执行Android程序...

    Android开发实例大全II_附带目

    8. **多线程与异步处理**:AsyncTask、Handler、Looper、Thread、Runnable等是Android中处理多线程和异步任务的重要工具,它们能帮助开发者解决UI线程阻塞问题。 9. **网络编程**:包括HTTP请求库的使用,如OkHttp...

    Allocation Tracker(Android Studio)工具.docx

    相比于 Eclipse 版本的 Allocation Tracker,Android Studio 版本提供了更为直观且清晰的界面与功能,使开发者能够更加便捷地监控应用程序中的内存分配细节。 #### 二、启动 Allocation Tracker 1. **启动追踪**:...

    安卓webview与js交互demo

    - `addJavascriptInterface()`: 创建一个Java对象并将其暴露给JavaScript环境,使JavaScript可以通过特定对象调用Android的方法。 - `WebViewClient`的`shouldOverrideUrlLoading()`: 控制页面链接的打开方式,...

    《Android高性能实践

    - **避免不必要的对象创建**:例如,在循环中避免频繁调用`ArrayList.size()`,而是先获取其大小并存储在一个局部变量中使用。 - **合理使用缓存机制**:利用软引用(SoftReference)和弱引用(WeakReference),...

    android 主角移动与地图平滑滚动

    在Android游戏开发中,主角移动与地图平滑滚动是实现流畅游戏体验的关键技术。这一过程涉及到许多编程概念和技术,包括视口管理、坐标系统转换、帧率优化等。以下是关于这个主题的详细解释: 1. **视口管理...

    android小测、面试题

    - **通过SQLiteOpenHelper获取**:通过继承SQLiteOpenHelper并重写其方法,然后调用`getWritableDatabase()`或`getReadableDatabase()`方法获取SQLiteDatabase实例。 - **获取方法**: - `getWritableDatabase()`:...

    AndroidPdfViewer阅读器源码

    6. **API接口**:源码中应包含对外的API接口,使得开发者可以方便地在自己的应用中调用PDF阅读器的功能,例如打开指定的PDF文件、跳转到特定页码等。 在学习和研究AndroidPdfViewer源码时,开发者可以从以下几个...

Global site tag (gtag.js) - Google Analytics