当前位置:  编程技术>移动开发
本页文章导读:
    ▪监听电话的receiver片断        监听电话的receiver片段   public class PhoneStatReceiver extends BroadcastReceiver {         boolean mIsComingCall = false;         @Override         public void onReceive(Context context, Intent intent) {           .........
    ▪ AndEngine怎么删除sprite        AndEngine如何删除sprite 回忆过去的事情,尤其是在很多不连续的时间中,要很好的描述清楚过去发生的事不是一件很简单的事情,好吧,我只是想到什么就说什么,现在说一个我在使用AndEng.........
    ▪ 从前的事情       过去的事情 好吧,既然要开始,就从最开始说起去年6月,从上大学起陪伴我7年的千锤百炼久经风雨的诺基亚手机,在一次意外坠地之后,终于伤重不治,永远的失去信号,宣布退休~当时.........

[1]监听电话的receiver片断
    来源: 互联网  发布时间: 2014-02-18
监听电话的receiver片段

 

public class PhoneStatReceiver extends BroadcastReceiver {

        boolean mIsComingCall = false;

        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d(TAG,"onReceive():intent.getAction()="+intent.getAction());
            if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
                String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
                Log.i(TAG, "call OUT:" + phoneNumber);
               
            } else if (intent.getAction().equals("android.intent.action.PHONE_STATE")) {
                if(mGridLayer != null){
                    boolean mIsSlide = mGridLayer.inSlideShowMode();
                    Log.d(TAG,"onReceive():mIsSlide="+mIsSlide);
                    if(!mIsSlide){
                        return;
                    }
                }else{
                    return;
                }
                TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
                switch (tm.getCallState()) {
                    case TelephonyManager.CALL_STATE_RINGING:
                        mIsComingCall = true;
                        String incoming_number = intent.getStringExtra("incoming_number");
                        Log.i(TAG, "RINGING :" + incoming_number);
                        break;
                    case TelephonyManager.CALL_STATE_OFFHOOK:
                        if (mIsComingCall) {
                            Log.i(TAG, "incoming ACCEPT");
                            mHasPhoneCame = true;
                        }
                        break;
   
                    case TelephonyManager.CALL_STATE_IDLE:
                        if (mIsComingCall) {
                            Log.i(TAG, "incoming IDLE");
                            mHasPhoneCame = true;
                        }
                        break;
                }
            } else {
                Log.i(TAG, "onreceive else");
            }
        }
    }


    
[2] AndEngine怎么删除sprite
    来源: 互联网  发布时间: 2014-02-18
AndEngine如何删除sprite
回忆过去的事情,尤其是在很多不连续的时间中,要很好的描述清楚过去发生的事不是一件很简单的事情,好吧,我只是想到什么就说什么,现在说一个我在使用AndEngine中遇到的一个问题
很多情况下需要删除一个sprite,比如爆炸的动画效果结束之后要从场景中删去,或者物体被摧毁后要从画面中消失等等

在AndEngine中是很简单的一句

scene.detachChild(sprite);

如果你的游戏不是很激烈的话,那这样写基本上是没有任何问题的,但是,我在测试的时候总会出现一个问题,如果游戏的过程比较激烈的话,可能在非常短的时间之内会不断的添加/删除很多个sprite,这样就会有相当大的几率出现一个索引超出序列的exception

这个问题我之前已经修复了,而且也没有保存下来当时出错的stack trace,所以很抱歉不能提供在这里,总之是一个相当普通的java 索引超出序列的exception

很多时候问题出现的都比较奇怪,但在解决之后总会恍然大悟。经过多次测试和debug,终于发现了原因
AndEngine的运行机制是有两个核心线程,一个更新线程,一个处理线程,更新线程有一个while循环会不断的遍历当前所有可见元素(包括background, sprite, animate, particle)并将元素实时画在屏幕上,处理线程则负责进行运算操作,如果在处理线程中执行删除sprite的语句,而同时更新线程需要更新元素时,就会有索引超出序列的exception出现

所以,安全的做法是在更新线程做删除操作

this.runOnUpdateThread(new Runnable() {
			@Override
			public void run() {

				scene.detachChild(Sprite);
			}
		});


在AndEngine最新的实例中也有说明
/*Removing entities can only be done safely on the UpdateThread.
*Doing it while updating/drawing can
*cause an exception with a suddenly missing entity.

    
[3] 从前的事情
    来源: 互联网  发布时间: 2014-02-18
过去的事情
好吧,既然要开始,就从最开始说起
去年6月,从上大学起陪伴我7年的千锤百炼久经风雨的诺基亚手机,在一次意外坠地之后,终于伤重不治,永远的失去信号,宣布退休~
当时下了狠心,买了个联想的乐phone,这可真是割肉了~所以就想着怎么能挽回点~好吧,当时联想宣传的沸沸扬扬的,咱也当个开发者,开发软件吧~就这么开始了
第一个应用是一个非常非常非常简单的不能再简单的小应用,就是翻牌,翻到两张同样的就能够把牌翻过来,否则牌会又扣回去,每个人都玩过的,比较考验记忆力~
当时这个小游戏一共只做了1周不到,所以现在开来时非常简陋的,画面简单的一塌糊涂,现在回去再看代码,更是一塌糊涂。。。但个人感觉除去画面来讲,游戏性还是不错的。。。
以目前的市场客观状况看来,收费是不现实的,第一个helloworld也不合适,所以加了个广告,赚点早点费~~
之后又陆续的做了几个小应用,感觉在手机上的开发还有游戏比较有前途
工欲善其事,必先利其器,所以,在google上翻了很久,最终选定了一个游戏引擎,AndEngine,也算是相当著名了,Rukon停止开发了,而且Rukon的开发者也推荐AndEngine,还有libgdx,但是看了会,AndEngine要更好上手一些,我是初学者,就选他了~
记不起是去年的几月,可能是年底了,开始了自己酝酿已久的小项目~中间也经历过挫折,但也有克服,但是随着魔兽CTM的上线,和自己找不到明确的方向,二者的共同原因,使开发工作停滞了很久,直到一个月前,换了新工作,随着时间的增多,关于项目的具体思路也逐步理清,又重新拿起了搁置已久的项目,开始卖力工作起来~
后面,我会记录下开发中的点点滴滴,包括自己所犯的错误和走过的弯路,以便能够更好的提醒自己把事情做好,也可能给后来的开发者们一些帮助~

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪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