当前位置:  编程技术>移动开发
本页文章导读:
    ▪Activity 技艺 屏幕 进度条 控制        Activity 技巧 屏幕 进度条 控制 锁定 Activity 运行时的屏幕方向 <activity android:name=".EX01" android:label="@string/app_name" android:screenOrientation="portrait" // 竖屏 , 值为 landscape 时为横屏 ………… <.........
    ▪ Mms短信接收流程分析(1)        Mms短信接收流程分析(一) 在Mms源码AndroidMenifest中与sms接收相关的receiver:PrivilegedSmsReceiver和SmsReceiver,前者继承后者,接收广播后调用后者的onReceiveWithPrivilege()方法处理,而主要不同是.........
    ▪ 菜鸟——Objective c 编写简单的计算器       初学者——Objective c 编写简单的计算器 首先用Interface Builder做出一个简单的计算器图形:先再.h文件中定义好输出口,全局变量还有方法@interface calculatorViewController : UIViewController { IBOutlet UITe.........

[1]Activity 技艺 屏幕 进度条 控制
    来源: 互联网  发布时间: 2014-02-18
Activity 技巧 屏幕 进度条 控制
锁定 Activity 运行时的屏幕方向
<activity android:name=".EX01"
 android:label="@string/app_name" 
 android:screenOrientation="portrait" // 竖屏 , 值为 landscape 时为横屏
…………
 </activity> 


全屏的 Activity
// 设置全屏模式
 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
    WindowManager.LayoutParams.FLAG_FULLSCREEN); 
 // 去除标题栏
 requestWindowFeature(Window.FEATURE_NO_TITLE); 


在 Activity 的 Title 中加入进度条
// 不明确进度条
 requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
 setContentView(R.layout.main); 
 setProgressBarIndeterminateVisibility(true); 

 // 明确进度条
 requestWindowFeature(Window.FEATURE_PROGRESS); 
 setContentView(R.layout.main); 
 setProgress(5000); 

    
[2] Mms短信接收流程分析(1)
    来源: 互联网  发布时间: 2014-02-18
Mms短信接收流程分析(一)
在Mms源码AndroidMenifest中与sms接收相关的receiver:PrivilegedSmsReceiver和SmsReceiver,前者继承后者,接收广播后调用后者的onReceiveWithPrivilege()方法处理,而主要不同是申明了android.permission.BROADCAST_SMS,用来阻止SMS spoofing//关于SMS spoofing资料待查。

PrivilegedSmsReceiver接收android.provider.Telephony.SMS_RECEIVED。在SMSDispatcher,Handle中处理case:EVENT_NEW_SMS,其中函数dispatchMessage调用dispatchPdus发出OrderedBroadcast:SMS_RECEIVED,同时请求了一个足以让receiver去取得自己wake lock的wake lock,这里要说一下,在SmsMessage.createFromPdu()方法已经分析了message是cdma还是gsm,因此调用相应类的dispatchMessage函数。

回来继续分析PrivilegedSmsReceiver,接收到广播后,调用父类的onReceiveWithPrivilege()方法,并传递参数privileged=true,这里就进行了判断,对于没有permission的信息,直接ignore。

启动SmsReceiverService之前,用mStartingServiceSync同步请求了一个wake lock,在SmsReceiverService的handleMessage中release the wake lock.

关于SmsReceiverService,下面引一段前人的笔记:
.transaction.SmsReceiverService ,它被创建时首先 初始化了新的工作线程(HandlerThread对象)用来在后台完成相关动作,紧接着在onStartCommand方法里会将具体的任务通过消息(即调用service的Intent)发送给工作线程进行处理。根据 Intent.Action的名称,工作线程会处理4中情况:
A.系统启动完成后BOOT_COMPLETED:把发件箱(outbox)中的消息移动到发送队列(QueuedBox),然后开始发送队列中的消息,最后调用updateNewMessageIndicator方法更新状态栏消息指示图标;
B.处理Sms接收handleSmsReceived:从Intent中取得消息对象,直接显示给用户(Class0类型)或者保持到数据库中。
C.处理Sms发送handleSmsSent:从待发送消息队列中取得消息,并按次序逐个发送;
D.处理通讯网络状态改变handleServiceStateChanged:用户从无信号状态进入有信息号状态后,继续执行发送任务的情况。

handleSmsReceived调用insertMessage方法,其中:
1、sms.getProtocolIdentifier()=0x40,直接返回null,不做任何处理。
2、sms.getMessageClass() = CLASS_0,直接显示信息
3、sms.isReplace()=true,替换原来数据库里面的短信
4、如果以上情况都不是,直接保存到uri:content://sms/inbox

调用MessagingNotification.blockingUpdateNewMessageIndicator()用Notification或者toast的方式提醒用户接收到新信息。







    
[3] 菜鸟——Objective c 编写简单的计算器
    来源: 互联网  发布时间: 2014-02-18
初学者——Objective c 编写简单的计算器
首先用Interface Builder做出一个简单的计算器图形:


先再.h文件中定义好输出口,全局变量还有方法
@interface calculatorViewController : UIViewController {

	IBOutlet UITextField *textField;
	int number;
	BOOL function;
	BOOL isFlage;
	BOOL isResult;
	BOOL isAgain;
	BOOL isPress;
	NSString *num;
	NSString *nums;
	int TEMP;
}
@property(retain,nonatomic)UITextField *textField;

- (IBAction)buttionPressed:(id)sender;
- (void)plus:(id)sender:(NSString *)value;
- (void)minus:(id)sender:(NSString *)value;
- (void)multiple:(id)sender:(NSString *)value;
- (void)divide:(id)sender:(NSString *)value;
- (void)clearshow:(id)sender:(int)value;
@end


连接好输出口,按下Ctrl键并从file's Owner中拖到text框中选择好合适的textfield输出口
 
之后要注意file's Owner的链接,按住ctrl从file's Owner拖到要显示的窗口,再选中要控制按钮,再按花+2键在里面找到touch up inside,点住后面的圆点拖到file's Owner中,按钮依次照做。


再在.m文件中写入方法:首先是buttonpressed方法,里面有对按钮的识别和每个运算方法的调用。
- (IBAction)buttionPressed:(id)sender{
	
	if (!isFlage) {
		num = [sender titleForState:UIControlStateNormal];
		nums = [[NSString alloc] initWithFormat:@"%@%@",textField.text,num];
		textField.text = nums;
	}else {
		if (!isPress) {
			isFlage=FALSE;
			num = [sender titleForState:UIControlStateNormal];			
			nums = [[NSString alloc] initWithFormat:@"%@",num];
			textField.text = nums;
		}
						
	}
	[self plus:sender:nums];
	[self minus:sender:nums];›
	[self multiple:sender :nums];
	[self divide:sender :nums];
	[self clearshow:sender:number];
	
	if ([num isEqualToString:@"="]) {
		isPress=TRUE;
		isFlage=TRUE;
		switch (TEMP) {
			case 1:
				number=number+[nums intValue];
				textField.text=[NSString stringWithFormat:@"%d",number];
				isResult=TRUE;
				break;
			case 2:
				number=number-[nums intValue];
				textField.text=[NSString stringWithFormat:@"%d",number];
				isResult=TRUE;
				break;
			case 3:
				number=number*[nums intValue];
				textField.text=[NSString stringWithFormat:@"%d",number];
				isResult=TRUE;
				break;
			case 4:
				number=number/[nums intValue];
				textField.text=[NSString stringWithFormat:@"%d",number];
				isResult=TRUE;				
				break;
			default:
				break;
		}
		
	}
}


之后就是对每个运算方法的调用。这里举一个加法的例子,其他运算方法套用即可,还有一个清零的方法
- (void)plus:(id)sender:(NSString *)value{
	num = [sender titleForState:UIControlStateNormal];
	if ([num isEqualToString:@"+"]) {
		TEMP=1;
		isPress=FALSE;
		isFlage=TRUE;
		
		if (isResult) {
			function=FALSE;
		}
		if (!function) {
			number=number+[value intValue];
		}else{
			function=TRUE;
			isResult=FALSE;
			number=[value intValue];
		}
		textField.text=[NSString stringWithFormat:@"%d",number];
	}	
}

- (void)clearshow:(id)sender:(int)value{
	num = [sender titleForState:UIControlStateNormal];
	if ([num isEqualToString:@"Clear"]) {
		
		number=0;
		isFlage=FALSE;
		textField.text=[NSString stringWithFormat:@"%d",number];
	}
}

功能并不是很多,主要是运用到了一些基本的知识。自己需要注意的是字符串的连接
nums = [[NSString alloc] initWithFormat:@"%@%@",textField.text,num];

还有int型转化为string型:
textField.text=[NSString stringWithFormat:@"%d",number];

string型转化为int型:
[value intValue];


    
最新技术文章:
▪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