Activity详解一 配置、启动和关闭activity

activity的使用 一 anctivity四种状态 1、运行状态 2、暂停状态 3、停止状态 4、销毁状态 阅读详情

java学习手册,最全java资料


楼主自己开发的象棋棋谱app,含10万棋谱

先看效果图

Android为我们提供了四种应组件,分别为Activity、Service、Broadcast receivers和Content providers,这些组建也就是我们开发一个Android应用程序的基石。系统可以通过不同组建提供的切入点进入到开发的应用程序中。对用户来说不是所有的组建都是实际的切入点,但是他们之间都是相互依赖的,它们每一个作为存在的实体,扮演着特定的角色,作为独一无二的基石帮助开发者定义Android应用的行为。下面我将整理自己的Activity学习点滴:

        一个Acitvity作为一个显示在屏幕上的用户交互界面,比如在电子邮件应用中,一个用来显示收件列表的Activity,一个用来写邮件的Activity,一个阅读邮件内容的Activity,等等。Activity用来提供用户体验,许多不同体验的Activity聚集在一起即可以形成一个Android应用程序的用户体验,每一Activity都是相互独立的。应用除了可以访问自己的Activity,也可以访问其他APP的Acitivity(需要被APP允许)。

1.如何创建一个Activity?

    必须创建一个Activity的 子类,在子类中需要实现Activity状态在生命周期中切换时系统回调的函数(onCreate、onStart、onResume、onPause、onStop、onDestroy),当然并非所有的函数都需要重新实现。其中两个比较重要的函数为onCreate和onPause:

          onCreate(),此方法必须要重写。系统调用此方法创建activity,实现该方法是你初始化你所创建Activity的重要步骤。其中最重要的就是调用 setContentView() 去定义你的要展现的用户界面的布局。

          onPause(),当系统任务用户离开此界面时会调用此方法,此时并非销毁一个Activity。通常在这里就要处理一些持久超越用户会话的变化,比如:数据的保存。

         为了保证流畅的用户体验和处理,你可以调用其他的回调函数来使你的Atctivity停止或销毁。在onStop()方法中,一般做一些大资源货对象的释放,如:网络或者数据库连接。可以在onResume时再加载所需要资源。

2创建Activity  

public class MainActivity extends Activity { 
 
    //必须重写的方法 
 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
        super.onCreate(savedInstanceState); 
 
        setContentView(R.layout.activity_main);//activity的布局 
 
    } 
 
} 

 

 

       2.一个Activity创建完成后,为了它可以访问系统必须要声明注册它到应用的AndroidManifest.xml文件中:

<activity 
 
    android:name="com.zy.demo.activity.MainActivity" 
 
    android:label="@string/app_name" > 
 
    <intent-filter> 
 
        <action android:name="android.intent.action.MAIN" /> 
 
        <category android:name="android.intent.category.LAUNCHER" /> 
 
    </intent-filter> 
 
</activity> 


      <activity>有很多属性供开发者定义不同特色的Activity,比如lable、icon或者theme、style等。其中android:name是必须的属性,用来定义activity的名字,当应用发布后不能改变。

        <activity>还提供各种intent-filter,使用<intent-filter>来声明其它应用组件如何激活(启动)Activity,<intent-filter>有包含<action>和<category>两个元素。如上例中<action android:name="android.intent.action.MAIN" />用来表示此Activity需要响应android.intent.action.MAIN(表明为应用程序的主要入口),<category android:name="android.intent.category.LAUNCHER" />表示Activity为LAUNCHER类别,即应用程序会列在Launcher中,允许用户直接启动。以上也是一个应用的主activity所必须的声明方法:一个MAIN action,和一个LAUNCHER category。如果要Activity响应其他应用的隐式的intent,则需要为Activity声明对应action,还可以添加categor和data。

3.Activity的启动

3.1 startActivity

        通过调用startActivity(intent)启动Activity,intent用来准确的描述你要启动的Activity,或者你要进行的action,intent也可以用来携带小数据给被启动Acitivity。

           当在同一个应用中间需要简单启动另一个Activity,intent明确的定义你要启动Activity类即可:

//定义一个intent,指名要启动的activity:ToStartActivity 
 
Intent intent =  new Intent(MainActivity.this,ToStartActivity.class); 
 
//使用startActivity(),启动activity 
 
startActivity(intent); 

 

           在你的应用程序需要执行一些自身没有Activity可以执行的行为时,我们可以使用手机上的其他应用程序的Activity来代替执行。比如发送一个mail、查看一张图片、搜索一个单词等等。这个里也就是Intent的重要指出,你可以定义一个intent描述你想要做的行为,等你发送给系统后,系统会启动合适的Acitivty帮你执行,如果有多个应用的Activity都可以处理此行为时,系统会让用户去选择一个。当此Activity执行完毕后,原来的Activity将比

              

//跨应用从google界面搜索 
 
              Intent intent = new Intent(Intent.ACTION_WEB_SEARCH); 
 
              intent.putExtra(SearchManager.QUERY, "zy"); 
 
              startActivity(intent); 

 

     当跨应用启动Activity时,在定义intent时必须要为他指定具体的acitvity,前提是此activity必须暴露在自己应用程序之外(android:exported="true"):

Intent intent = new Intent(); 
 
//指定要启动组建完整的包名,对象名 
 
ComponentName cn = new ComponentName("com.android.settings", 
 
        "com.android.settings.RunningServices"); 
 
intent.setComponent(cn); 
 
// 使用context.startActivity()时需要新启一个任务 
 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
 
startActivity(intent); 

 

3.2 startActivityForResult

       通过调用 startActivityForResult(intent),来接收到启动的Acitivity反馈的结果。为了接收接下来启动的Activity的结果,需要重写onActivityResult()这个回调函数。当调用的activity完成后,它将返回一个含有结果的intent给onActivityResult()处理。比如,在应用程序的Activity中,需要用户选择联系人中的一个,Activity需要得到联系人的部分信息:

         

Intent intent = new Intent(Intent.ACTION_PICK, 
 
                        Contacts.People.CONTENT_URI); 
 
                //启动一个带有选择联系人返回结果的activity 
 
                startActivityForResult(intent, PICK_CONTACT_REQUEST); 
 
          这里的PICK_CONTACT_REQUEST为自定义的int型请求反馈结果代码。
 
//重新onActivityResult()用来处理接收到的返回结果 
 
@Override 
 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
 
    // 如果请求requestCode成功,且请求返回的结果resultCode是我们要的PICK_CONTACT_REQUEST 
 
    if (resultCode == Activity.RESULT_OK 
 
            && requestCode == PICK_CONTACT_REQUEST) {            
 
        // 处理Intent返回的数据,在联系人数据库中查找联系人的名字 
 
        Cursor cursor = getContentResolver().query(data.getData(), 
 
                new String[] { Contacts.People.NAME }, null, null, null); 
 
           
 
        if (cursor.moveToFirst()) { // 如果cursor不为空,就查找出联系人的名字 
 
            int columnIndex = cursor.getColumnIndex(Contacts.People.NAME); 
 
            String name = cursor.getString(columnIndex); 
 
            //添加其他功能 
 
        } 
 
    } 
 
}    

 

        这里在要说明是onActivityResult()使用来处理返回结果的,首先要检查的是请求是否成功,然后是否有返回结果,结果是否是startActivityForResult()中所要的,如果满足,则处理通过Intent返回的数据。

4.关闭Activity

1  Activity可以调用finish()方法关闭自己,也可以通过调用finishActivity()的方法关闭一个独立的之前启动的Activity。

2 调用finishActivity()的方法关闭一个独立的之前启动的Activity

 //此方法用在关闭使用startActivityForResult(requestCode)启用的Activity  

 this.finishActivity(requestCode);  

           关于何时关闭一个Activity,一般由系统直接为我们管理。但是当你确认用户不用返回到此Activity时,我们调用以上方法关闭对应的Activity。

 

5 Demo代码:

package mm.shandong.com.testusea;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
 
public class TestUseAActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_use_a);
    }
   //启动第一个activity
    public void startFirstActivity(View view) {
        Intent intent = new Intent(this, TestUseAActivity2.class);
        startActivity(intent);
    }
    //启动第二个activity
    public void startSecondActivity(View view) {
        Intent intent = new Intent(this, TestUseAActivity3.class);
        startActivity(intent);
    }
    //启动第三个activity,这个activity 4秒钟后被关闭
    public void startThirdActivity(View view) {
        Intent intent = new Intent(this, TestUseAActivity4.class);
        startActivityForResult(intent, 1);
        new Thread() {
            @Override
            public void run() {
                try {
                    Thread.sleep(4000);
                    finishActivity(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }.start();
 
    }
}

本人微博:honey_11

 Demo下载 
最后,以上例子都来源与安卓无忧,请去应用宝或者豌豆荚下载:例子源码,源码例子文档一网打尽。



Activiti6--入门学习--基础知识&环境搭建部署 文章目录1、Activiti6知识基础2、BPMN基本对象3、活动任务 Task4、网关 Gateways5、Activiti6.0集成SpringBoot+idea基础入门5.1、启动成功5.2、发布流程5.3、启动流程5.4、查看任务5.5、完成任务5.6、查询流程状态5.7、查询历史记录 1、Activiti6知识基础 activiti是以BPMN规范为基础的,所以需要了解BPMN的基础知识,这里只作简单介绍。 bpmn通过流程图和用户交互,用工作流自己的表来维护流程数据,其中activiti6是28 阅读详情

相关推荐

Android语言基础教程(81)Android基本程序单元Activity之创建、配置、启动和关闭Activity:Activity整活指南:从创建到关闭,让你的Android应用“活”起来!

Activity堪称Android应用的社交牛逼症患者,每个页面都是它的舞台!本文将用最接地气的方式,手把手教你如何“捏”出一个Activity——从XML画界面到Java写逻辑,从AndroidManifest注册到多种启动姿势,甚至如何优雅“送走”它。全程附代码示例,带你体验登录跳转的完整流程,保证你看完直呼:“原来Android开发就像搭乐高,根本停不下来!”#Android开发 #Activity入门 #程序员幽默

jxf_jxfcsdn的博客 738

Android - Activity 活动

无

qq_63713888的博客 1万+

Activity的四种启动模式

Activity的启动模式可在项目的配置文件内进行设置 standard:标准模式下每次启动的Activity都会新建,切放到Task任务栈的栈顶,通过点击返回关闭应用的话,就需要返回Activity的新建次数 singleTop:相较于standard模式,singleTop模式下,当新建Activity时,首先会确定该Activity是否在该Task的顶部。如果不在的话才会新建 singleTask: 相较于singleTop模式,singleTask模式下,新建Activity时首先会判断其是否

quchen528的博客 2490

android中activity自动关闭,Android Activity自动关闭

我成功地用我的三星Galaxy S5和一些使用Android Studio内置模拟器的设备运行了一些测试。如果我使用例如Samsung S3 Mini(Android 4.1.2,1GB Ram),它会打开第一个活动。在主要活动我建了一个开关case语句移动到我的其他活动:switch (v.getId()) {case R.id.aktuelles:Log.d(Constants.TAG, "a...

weixin_36078737的博客 968

【Android笔记16】Android四大组件之Activity启动和关闭以及传递数据

Bundle是Android里面提供的一个类,它主要用于保存一些数据,可以保存字符串、集合、数组、字符等等类型的数据,不同的Activity之间就是通过Bundle进行数据传递,也是从Bundle里面获取数据。

✅ Java 开发工程师 543

CANoe基础讲解01:从零开始使用CANoe轻松搭建你的第一个CAN网络

本文是一篇CANoe软件入门实操指南,逐步演示了如何从零创建并运行一个CAN FD仿真工程。内容包括:启动软件、配置硬件通道与网络、加载DBC数据库、使用CAPL编写仿真节点发送CAN报文,最终启动测量并在Trace窗口中查看通信结果。通过七个清晰步骤,帮助初学者快速掌握CANoe基本操作,完成首个可运行的仿真网络搭建

车载网络小D的博客 1571

Activity详解一 配置、启动和关闭activity转载 https://www.cnblogs.com/androidWuYou/p/5887726.html...

先看效果图: Android为我们提供了四种应组件,分别为Activity、Service、Broadcast receivers和Content providers,这些组建也就是我们开发一个Android应用程序的基石。系统可以通过不同组建提供的切入点进入到开发的应用程序中。对用户来说不是所有的组建都是实际的切入点,但是他们之间都是相互依赖的,它们每一个作为存在的实体,扮演着特...

weixin_30412167的博客 6086

FreeModbus源码详解

本篇按照FreeModbus协议栈的工作流程,对源代码进行总结解析;FreeModbus协议栈作为从机,等待主机传送的数据,当从机接收到一帧完整的报文后,对报文进行解析,然后响应主机,发送报文给主机,实现主机和从机之间的通信; 1:demo.c中三个函数,完成协议栈的准备工作; eMBInit()函数:(mb.c) /*函数功能: *1:实现RTU模式和ASCALL模式的协议栈初始化; *2

2万+

如何创建、配置、开启和关闭Activity

编辑器:as 创建activity 首先,创建一个activity 【new】——【Activity】——【Empty Activity】 在跳出来的窗口中分别输入Activity名,布局名称和包名 这样我们就算创建chenggongle 配置activity 选中上面创建的包,右击选择【New】——【Java class】创建一个SecondActivity类,并使此类继承Activit...

weixin_43919342的博客 1664

原形网络(Prototypical Networks)基于PyTorch的实现

我在Jay2coomzz的基础上修改了数据处理方式和evaluation_model()方法,作为初学者若有不当之处恳请大家批评指正,原文链接如下: https://blog.youkuaiyun.com/weixin_38471579/article/details/102631018 数据集和源码链接将放到评论区 文章目录1 数据集一个简单的数据集介绍数据集处理2 搭建网络CNNProtonets 1 数据集 一个简单的数据集介绍 Omniglot数据集一共包含1623 类手写体,每一类中包含20 个样本。其中.

weixin_43872532的博客 6636

分布式定时任务(XXL-JOB)整合达梦数据库 带源码

背景 1. 因公司需要可视化管理配置调度任务,查询项目选择XXL-JOB,它是开源项目,入手很简单,详情可以参考官方文档; 2. 因项目的机密性,选择数据库为国内知名的达梦数据库7,与Java项目的整合详情可以参考SpringBoot 集成 达梦数据库 maven依赖本地jar包; 3. 因XXL-JOB暂时没有找到集成达梦数据库的案例,博主自己整合DM7踩过很多的坑,特此整合一个简单可直接...

艾斯-李的博客 3814

Android:Activity(一):Activity的配置,启动和关闭

Activity的配置,启动和关闭 Activity的配置: 只要为<application.../>元素添加<activity.../>子元素即可配置Activity,配置Activity时通常还需要 指定一个或多个&lt...

chenjian1797的博客 395

Linux yum源配置以及yum命令讲解

前面为大家介绍了RPM二进制包安装软件,RPM包安装的最大的缺点也提到过,就是依赖性太强,一旦遇到依赖问题,则需要我们手动解决包之间具有依赖性的问题,今天为大家介绍一种可自动解决包之间依赖关系的安装方式:yum。 yum 全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上我们通常可以通过各种软件管家实现软件的一键安装、升级和卸载,yum就是Linux 系统中的一键安装工具。yum 解决依赖关系的基本逻辑是:yu

九派Linux的博客 2283

创建、配置、启动、关闭和刷新activity

创建activity 1、创建继承自Activity的Activity 2、重写需要的回调方法 3、设置要显示的视图 配置 在配置文件中添加 <activity android:name=".DetailActivity" android:label="详细"> </activity> 启动 入口Activity 在xml文件中配置:在入口activity中添加一下内容 <intent-

放浪曲蘖的博客 607

Kubernetes集群环境搭建与初始化

Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

m0_75254642的博客 1523

信噪比(Signal-to-Noise Ratio, SNR)详细介绍

信噪比(Signal-to-Noise Ratio,SNR)是衡量信号质量的重要参数,表示有用信号的功率与背景噪声功率的比值。其中,\( P_{\text{signal}} \) 表示信号功率,\( P_{\text{noise}} \) 表示噪声功率。- 音频处理:在音频设备和录音系统中,SNR决定了音质的好坏,高SNR表示音频信号更清晰,噪声更少。- 低SNR:信号中噪声成分较大,接收端难以分辨有用信号和噪声,可能导致误码率高,通信质量差。SNR定义为信号功率与噪声功率之比,通常用分贝(dB)表示。

qq_58860480的博客 8万+

Android零基础入门第74节:Activity启动和关闭

一个Android应用通常都会包含多个Activity,但只有一个Activity 会作为程序的入口,而应用中的其他Activity通常都由Activity启动。

鑫鱻的博客 1632

MATLAB地理数据处理 25:植被物候提取及分析模型优化(Savitzky-Golay)

之前我写过一篇使用Savitzky-Golay处理遥感数据,获取地面物候信息的MATLAB代码,但是发现存在一些问题:对物候开始期和物候结束期的阈值设定都为相同值,但是有些研究中,需要根据不同的环境条件,设置不同的物候阈值,所以对其进行相应的修改。

amyniez的博客,欢迎交流讨论 2233

笔记 启动和关闭Activity:

启动Activity 启动Activity分为两种情况: a) 在一个android应用中,只有一个Activity的时候,只需要在AndroidManifest.xml文件中对其进行配置,并且将其设置为程序的入口,当运行该项目时,将自动启动该Activity b) 在一个android文件中,存在多个Activity时,需要应用startActivity()方法来启动需要的Activity,s...

兔丸的博客 733

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

安卓开发学习8:Activity详解

Activity解析Activity四种状态ACtivity生命周期创建启动、启动和关闭Activity创建Activity步骤Android Studio快捷创建空的Activity文件解析启动和关闭Activity两种Activity启动Activity关闭ActivityActivity之间的数据交换使用Bundle进行数据交换交换数据步骤调用另一个Activity并获取返回结果 Activity解析 Activity相当于设备上的一个屏幕,在屏幕上添加不同的组件并且进行配置,从而呈现不同的功能 .

qq_43967413的博客 8万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Activity详解——Activity的xml配置

首先是一些生命周期一览。 如下xml中是Activity的xml配置方法的一览以及简介,详细的介绍可以继续往下阅读。 &amp;lt;activity &amp;lt;!--是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务,默认false--&amp;gt; android:allowTaskReparenting=[&quot;true&quot; | &quot;false&quot;]

h55l55的专栏 8695

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Activity的启动方式和flag详解

Activity的启动方式和flag详解

qq_44910624的博客 281

Android Activity详解

一、Activity概述 Activity,实现程序的交互。 Activity,代表手机或平板中的一屏。 Activity的4种状态: Activity的生命周期: 更正:OnRestart应该接到Onstart方法。 二、创建、启动和关闭Activity 1、创建Activity 创建继承自Activity的Activity 重写需要的回调方法 设置要显示的视图 //extends Ac...

一只蒻蒻的博客 1421
上一篇: android 音乐播放器
下一篇: Activity详解二 activity数据传递
androidWuYou
博客等级 码龄10年 51粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值