Windows Phone 7开发入门:探索项目模板

需积分: 10 1 下载量 107 浏览量 更新于2024-07-20 收藏 3.56MB PDF 举报
"《Windows_Phone_7开发31日谈》PDF" 《Windows_Phone_7开发31日谈》是一本专为Windows Phone 7平台开发者编写的指南书籍,适合初学者和有一定Silverlight基础的程序员。作者Jeff Blankenburg在书中通过31天的连续讨论,逐步引导读者掌握Windows Phone 7应用的开发技巧。 首先,作者指出学习这本书之前,读者应具备一定的Silverlight知识,因为Windows Phone 7的开发很大程度上依赖于Silverlight技术。如果你对Silverlight不熟悉,推荐先阅读作者的《Silverlight 31日谈》系列文章。此外,为了进行Windows Phone 7开发,需要安装Visual Studio 2010 for Windows Phone和Expression Blend 4 for Windows Phone,这两款工具都是免费的,并且可以从微软的开发者网站下载。 在开始开发工作前,作者介绍了Windows Phone 7的默认项目模板——WindowsPhoneApplication。当启动Visual Studio 2010时,这个模板会自动生成一个基本的项目结构。在Solution Explorer(解决方案管理器)中,你可以看到项目的组织方式。 - ApplicationIcon.png:这是应用的图标,显示在用户的程序列表中,对于提升应用的识别度至关重要,因此需要精心设计。 - App.xaml:这个文件类似于ASP.NET中的web.config,用于存储全局应用数据和设置,也可以用来定义应用的样式。 - App.xaml.cs:是App.xaml的代码后置文件,主要处理程序的生命周期事件,比如“墓碑”状态,即应用在后台运行时的状态,将在第14天的章节中详细讲解。 - AppManifest.xml:这是一个应用程序清单文件,用于生成XAP安装包,包含了应用的基本信息和权限设置。 除此之外,项目中还包括其他关键文件,如MainPage.xaml和MainPage.xaml.cs,分别代表应用的主界面及其对应的代码逻辑。这些文件构成了一个基本的Windows Phone 7应用框架,读者可以通过修改和扩展它们来创建自己的应用。 通过本书的学习,读者可以了解如何使用Visual Studio和Silverlight工具创建、设计和调试Windows Phone 7应用,包括UI设计、数据绑定、网络通信、多媒体处理、地理位置服务以及应用的发布与分发等方面的知识。这是一本全面而实用的教程,对于想要进入Windows Phone 7开发领域的开发者来说,是一份宝贵的资源。

#include <unistd.h> #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <signal.h> //下一步时间间隔 #define TIME_NEXT 50 //定义信号,此处直接使用系统信号,项目中可根据需要自定义信号值#define SIG_UI_QUIT35 #define SIG_PHONE_QUIT 36 #define SIG_UI_QUIT 35 //定义通话状态 enum TASK_PHONE_STATE { TASK_PHONE_STATE_NONE = 0, TASK_PHONE_STATE_RING, TASK_PHONE_STATE_TALK, TASK_PHONE_STATE_HANGUP, }; int phone_state = TASK_PHONE_STATE_NONE; //设置通话状态 void set_state(int state) { phone_state = state; } //获取通话状态 int get_state(void) { return phone_state; } int get_ui_pid() { int pid = -1; FILE *fp = NULL; char buf[12] = {0}; //打开管道,执行 shell 命令查找进程名为task_ui_sig 的pid fp = popen("ps -e I grep \'task_ui_sig\' | awk \'{print $1}\'", "r"); fgets(buf, sizeof(buf), fp); if (strlen(buf) > 0) { pid = atoi(buf); } return pid; } //信号处理函数 void sig_deal(int sig) { if (sig == SIG_UI_QUIT) { printf("Task ui hangup!\n"); set_state(TASK_PHONE_STATE_HANGUP); } } int main(void) { int time = 0; //设置SIG UI QUIT信号处理函数 signal(SIG_UI_QUIT, sig_deal); while (1) { /*模拟与其他用户处理通信协议,每隔5s进入下一状态*/ time++; if (time >= TIME_NEXT) { time = 0; if (get_state() == TASK_PHONE_STATE_RING) { set_state(TASK_PHONE_STATE_TALK); } else if (get_state() == TASK_PHONE_STATE_TALK) { set_state(TASK_PHONE_STATE_HANGUP); } else { set_state(TASK_PHONE_STATE_RING); } printf("Current state is %d!\n", get_state()); /*若当前通话状态为挂断,则退出任务,并发送信号给UI*/ if (get_state() == TASK_PHONE_STATE_HANGUP) { if (get_ui_pid() > 0) { kill(get_ui_pid(), SIG_UI_QUIT); printf("Send quit msg!\n"); } break; } usleep(100 * 1000); } return 0; } }这段代码有什么bug

2023-05-27 上传