第一天:splash页面和防盗功能

来源:互联网 发布:吉林省网络培训学院 编辑:程序博客网 时间:2024/05/22 02:04
mvc 结构(程序的结构图片)另外一种包结构,以业务逻辑进行包的划分。splash界面 :飞洒 飞溅完成一个产品logo显示.1. 后台完成数据库初始化的操作2. 联网访问服务器,获取服务器最新信息 3. 不同的时间显示出来不同logo  判断当前系统时间, 素材一般从服务器上下载下来.4. 判断时间 根据时间显示不同的logo  1.明确项目的需求: 2.美工人员根据需求构图.3.开发项目经理 控制项目开发进度.1.在做程序自动安装更新的时候 ,必须保证程序的签名和包名是相同.C:\Documents and Settings\zehua\.android  \ debug.keystoredebug的签名,开发时候的签名Re-installation failed due to different application signatures.Please execute 'adb uninstall cn.itcast.mobilesafe' in a shell.2.两种上下文03-30 04:01:48.632: ERROR/AndroidRuntime(4841): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an applicationapplicationcontext  生命周期 进程存在 上下文就存在activity.this  activity 在任务栈 上下文存在 一个是应用程序的上下文,只要你的这个程序的进程存在它就存在。一个是当前activity的上下文,只要在任务栈中,这它就存在。在打开数据库传入上下文时间,要用应用程序上下文,因为如果你用activity上下文,如果回收了就不存在,就出错了,所以弹出框只能和acitvity上下文,如果是全局的要用全局上下文。环境03-30 07:26:36.151: WARN/ActivityManager(72): Permission Denial: receiving Intent { act=android.intent.action.NEW_OUTGOING_CALL (has extras) } to cn.itcast.mobilesafe requires android.permission.PROCESS_OUTGOING_CALLS due to sender com.android.phone (uid 1001)03-30 07:28:38.542: ERROR/AndroidRuntime(7028): java.lang.RuntimeException: Unable to start receiver cn.itcast.mobilesafe.receiver.CallPhoneReceiver: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?md5 -> md5 30次笔记 :LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。他们的区别在于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式。举个例子,我们可以通过设置android:gravity="center"来让EditText中的文字在EditText组件中居中显示;同时我们设置EditText的android:layout_gravity="right"来让EditText组件在LinearLayout中居中显示。java代码 中引用 资源 的方法,记住,安卓 中上下文Context可以得到一切资源。java代码中引用字符串资源的方法。getApplicationContext().getString(R.string.versionWarn);两种图标:<application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name" >这个是在安卓的管理程序显示的图标和名称。 <activity            android:icon="@drawable/icon5"            android:label="@string/app_name"            android:name=".ui.SplashActivity" >这个在桌面显示。文件保存编码方式和XML头的声明是否一致,否则你永远无法解析正确。也就是说,你最好先自己从浏览器打开看看,能不能访问。一般而言,业务方法的异常不要try catch而是要抛出来,否则别人调用它如果方法出异常了能够得到并且处理,如果不抛出来,即使出问题了,也找不到。在业务中,在方法中抛出,在action层,一定要包起来。给它处理了。为什么有时间我们找不到R文件下的资源,因为我们引入包错了。import cn.itcast.mobilesafe.R;而我们可能会错误引入系统的包import android.R.我们要引用自己系统下的R文件。所有的弹出框的建立方法一样的, new AlertDialog.Builder(this)      .setTitle("单选框")      .setIcon(R.drawable.down)  只是后面set的东西一样,有单选,多选,弹出等。最后都是create().show();其中比较厉害的一个是有一个setView(View view)里面可以传入任何View对象,那厉害了,是吧。操,这是我找了半天的错误:public UpdataInfo getUpdataInfo(int urlid) throws Exception{String path = context.getResources().getString(urlid);URL url = new URL(path);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.setConnectTimeout(2000);//如果超过两秒超时就不再连接,注意还有个方法是connection.setReadTimeout(timeout)不要混淆//我所有的错误原来来自于这里面这个如果你不设置连接超时,那么它会一直的等待,那么方法就阻塞在这了,永远不会执行。InputStream inputStream = connection.getInputStream();//把流转换成实体return UpdataInfoParse.parseXml(inputStream);}原来把设置超时方法的方法给写错了。所有的各种ListView,GridView等,都是一样的,它们都是一个独立的布局,里面不过是那些相同的item,所以我们还需要一个item.xml的布局,然后把这个item用inflate吹起来,返回一个整体的View对象。android:gravity 设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical 可以多选,用“|”分开。关联方法:setGravity (int gravity)用XML画一些基本图形:这是画一个正文形,下面是对这个正文形的一些作用。<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"     android:shape="rectangle"    >    <!-- 描边 -->  <stroke     android:width="0.5dip"    android:color="#ff505050"    /> <!-- 圆角 -->     <corners android:radius="2dip" >    </corners><gradient     android:startColor="#ff404040"    android:centerColor="#ff383838"    android:endColor="#ff404040"    /></shape>  操,原来图片那么好看,全部是依赖于背景图片呀。   android:theme="@android:style/Theme.NoTitleBar"  手机防盗界面不显示 ,通过拨某个电话号码去实现。  如果你在广播接收者和服务里面去开启一个activity的时间 因为广播接收者和服务没有任务栈,所以要显式的指定。  不能通过abortBroad因为通话调用发送广播的方法是带有 接收者API,这个方法 不能被abortBroad结束,要用setResult(null) 结束。  让某个GridView的条目不显示。 SDK中所有的安卓的class文件和资源文件都是在一个叫android.jar的包中。D:\android-sdk-windows\platforms\android-8想要对电话进行一些控制:<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>允许应用监督、限定或终止呼出的电话E/AndroidRuntime(1227): java.lang.RuntimeException: Unable to start receiver cn.itcast.mobilesafe.receiver.CallPhoneReceiver: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 在任务栈外面不能开启一个activity,因为activity是运行在任务栈里面的,所以在服务和广播接收者里面想要启动一个必须要指定一个东西,//凡是想要在广播接收者或者服务里面启动一个Intent,就是在创建一个新的Task任务intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);开始自定义弹出窗,其实就是继承,然后重写这个样式 。//这将是最简单的一种方法,至此把XML转换成View对象已有三种方法View view = View.inflate(this, R.layout.first_entry_dialog, null);实现:LayoutInflater factory = LayoutInflater.from(context);return factory.inflate(resource, root); 

原创粉丝点击