当前位置:  编程技术>移动开发
本页文章导读:
    ▪拨通电话和发送信息        拨打电话和发送信息 //打电话 class SendCallClickListener implements OnClickListener {iphone5 public void onClick(View v) { //调用Android系统API打电话 Uri uri = Uri.parse("tel:15800001234"); .........
    ▪ UIView内存释放有关问题        UIView内存释放问题 UIView内存释放,之前一直以为把alloc的UIView对象,最后release掉或者removeFromSuperview掉就可以了。但是最近项目中出现了当释放父试图时,子视图的内存不释放,最后导致内.........
    ▪ activityGroup 多个view没法自动弹出虚拟键盘       activityGroup 多个view无法自动弹出虚拟键盘 使用activityGroup 中多个view中进行切换时如果遇到textview中无法自动弹出虚拟键盘时解决办法: ,onResume方法中清理textview.clearFocus();这样就会因为几个.........

[1]拨通电话和发送信息
    来源: 互联网  发布时间: 2014-02-18
拨打电话和发送信息
//打电话  

class SendCallClickListener implements OnClickListener {iphone5  

         public void onClick(View v) {  

           //调用Android系统API打电话  

          Uri uri = Uri.parse("tel:15800001234");  

         Intent intent = new Intent(Intent.ACTION_CALL, uri);  

         startActivity(intent);  
    }  

  } 

 

第一种信息格式: 点击发送短信,自动跳转到编辑短信的位置,用户自己编辑短信

//发短信  

 class SendMsgClickListener implements OnClickListener {  

        public void onClick(View v) {  

          //调用Android系统API发送短信  

          Uri uri = Uri.parse("smsto:15800001234");  

           Intent intent = new Intent(Intent.ACTION_SENDTO, uri);  

           intent.putExtra("sms_body", "android...");  

          startActivity(intent);  

       }  

  }  

 

 第二种信息格式:是系统自动发送短信

 SmsManager smsManager =SmsManager.getDefault();
      smsManager.sendTextMessage(电话号码, null, "短信被容", null, null);
      Toast.makeText(context, "发送成功", Toast.LENGTH_SHORT).show();

  

 

 

 最后不要忘了做这些操作是需要授权的,需要在AndroidManifest.xml中加入两行配置
<uses-permission  android:name="android.permission.CALL_PHONE" />  

 <uses-permission android:name="android.permission.SEND_SMS"/> 

 


    
[2] UIView内存释放有关问题
    来源: 互联网  发布时间: 2014-02-18
UIView内存释放问题

UIView内存释放,之前一直以为把alloc的UIView对象,最后release掉或者removeFromSuperview掉就可以了。但是最近项目中出现了当释放父试图时,子视图的内存不释放,最后导致内存泄漏,报内存警告最后程序崩溃。

  造成UIview内存泄漏的原因是,当释放UIView时,其子视图中有占有的资源没有释放掉,如动画没有结束,最后造成内存不会释放掉。

下面的代码能够很好的展示上述过程:

在主视图上添加一个AnimationView,然后在AnimationView中在添加一个视图:

Animations *animationView=[[Animations alloc] initWithFrame:CGRectMake(10, 10, 270, 400)]; 
        [animationView setBackgroundColor:[UIColor yellowColor]]; 
        [self addSubview:animationView]; 
        [animationView release];

在Animations视图中添加一个递归的动画:


- (void)wobble { 
    NSLog(@">>>>>>>>>>>>>>>>>>"); 
        CGFloat rotation = (kWobbleRadians * M_PI * 2) / 360.0; 
        CGAffineTransform wobbleLeft = CGAffineTransformMakeRotation(rotation); 
        [UIView beginAnimations:nil context:nil]; 
        [UIView setAnimationDuration:kWobbleTime]; 
        [UIView setAnimationDelegate:self]; 
        self.transform = wobbleLeft; 
   //     if (!releaseFlage) { 
            [UIView setAnimationDidStopSelector:@selector(wobble)]; 
   //     } 
        [UIView setAnimationRepeatAutoreverses:NO]; 
        [UIView commitAnimations]; 
}

由于当前类每隔3秒钟要执行一次递归,所以当在主视图中移除AnimationView时,由于AnimationView的子视图动画是一个递归没有结束,所以当前这个视图树不会释放,只是不再界面上显示,最终造成内存泄漏。解决办法如下,当AnimationView想要移除时,需要将其子视图上的动画移除掉。我的做法是在AnimationView中添加下面方法即可:

- (void)willRemoveSubview:(UIView *)subview 

    Animations *downBookView=(Animations *)subview; 
    downBookView.releaseFlage=TRUE; 
}

这样内存其视图树就会跟着释放掉内存,从系统中彻底释放掉了。


    
[3] activityGroup 多个view没法自动弹出虚拟键盘
    来源: 互联网  发布时间: 2014-02-18
activityGroup 多个view无法自动弹出虚拟键盘

使用activityGroup 中多个view中进行切换时如果遇到textview中无法自动弹出虚拟键盘时
解决办法:

,onResume方法中清理textview.clearFocus();这样就会因为几个子的activity都
光标占用光标的问题。

比如说:
activityGrop(或者tab)有多个View,如果是view1 切换到 view2 时:
1.view1.clearFocus(); //先清除view1的焦点,view2就能自动弹出键盘了。


2.如果你的view是一个activity
一般是在onResume 或者onPause方法中清除焦点.在子activity生命周期中onCreate 中不设置请求光标
(textview.requestFoucs())
view1.clearFocus(); //先清除view1的焦点,view2就能自动弹出键盘了。
view2在onResume方法中也要清除焦点。

 

 如果还是没办法出来的话代码中写onClick 事件,或者onFocus事件都可以

 

 view.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v) {
    if(v.hasFocus()){
     ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
     .showSoftInput(ed_content, InputMethodManager.SHOW_FORCED);
    }else{
     ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
     .hideSoftInputFromWindow(ed_content.getWindowToken(), 0);
    }
    
   }
   
  });

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android实现弹出键盘的方法 iis7站长之家
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3