Android_Class_Activity

【安卓学习之开发工具】Error: Activity class {} does not exist █ 【安卓学习之开发工具】Error: Activity class {} does not exist █ 系列文章目录 提示:这里是收集了安卓学习之常见问题的相关文章 【安卓学习之开发工具】 Android Studio学习 1 - 入门篇 【安卓学习之开发工具】 Android Studio学习 2 - 遇到的问题 【安卓学习之开发工具】 Android Studio学习 3 - 一个demo的编译问题 【安卓学习之开发工具】 Android Studio学习 4 - 学习笔记(视频学习 阅读详情

Activity extends ContextThemeWrapper



类概述

UI setContentView你窗口(视图)
        

有两种方法,几乎所有的子活动将实现


  1. onCreate(Bundle)是你初始化你的活动。布局的资源定义你的UI,并使用findViewById(int)检索在UI中你需要与编程
  2. onpause()就是你处理用户离开你的活动

这里涵盖的主题:

  • Fragments
  • Activity lifecycle
  • ConfigurationChanges
  • Starting Activities and Getting Results
  • Saving Persistent State
  • Permissions
  • Process Lifecycle

开发指南

活动类是应用程序的整体生命周期的重要组成部分,和活动的方式一起启动,并将其放在平台的应用模型的基础部分。

对于一个安卓应用程序的结构和活动的行为如何详细的角度来看,请阅读应用程序的基本面和任务和背面堆栈开发指南。


你还可以找到一个详细的讨论关于如何在活动中创建活动的开发者指南。


Fragments

从蜂窝、活动实现可以使用Fragment类更好的模块化的代码,为大屏幕创建更复杂的用户界面,帮助规模小和大屏幕之间的应用。


Activity Lifecycle

在系统中的活动作为一个活动堆栈进行管理。当一个新的活动开始时,它被放置在堆栈的顶部并成为运行活动-以前的活动始终保持在堆栈中,直到新的活动退出时,它将不会再出现前台。

An activity has essentially four states:

  • 如果一个活动是在屏幕的前景(在堆栈的顶部),它是活动的或正在运行的。
  • 如果一个活动失去了焦点,但仍然是可见的(即,一个新的非全尺寸或透明的活动都集中在你的活动的顶部),它被暂停。暂停活动是完全活的(它保持所有状态和成员信息,并保持连接到窗口管理器),但在极低的内存情况下可以被系统杀死。
  • 如果一个活动被另一个活动完全遮蔽,它就被阻止了。它仍然保留所有状态和成员信息,但是,它不再是可见的用户,所以它的窗口是隐藏的,它往往会被杀害的系统时,内存是需要其他地方。
  • 如果一个活动被暂停或停止,系统可以通过要求它完成,或者简单地杀死它的进程来降低内存的活动。当它再次显示给用户时,它必须完全重新启动并恢复到它以前的状态。
下图显示了活动的重要状态路径



有三个关键循环,你可能有兴趣在你的活动监控:

  1. 一个活动的整个生命周期发生从第一次调用onCreate(Bundle)通过一个单一的最后一次通话ondestroy()。活动将尽”的设置在oncreate()全球”的状态,并在ondestroy()释放所有剩余资源。例如,如果一个线程在后台从网络上下载数据,它可以创建线程oncreate()然后停止线程ondestroy()。
  2. 一个活动的可视电话onstart()一生直到相应的调用onstop()之间。在这个时候,用户可以看到在屏幕上的活动,虽然它可能不是在前台和用户交互。这两者之间的方法,您可以保持资源,需要显示的活动,用户。例如,你可以在onstart()登记一个BroadcastReceiver来影响你的用户界面的变化监测,并注销其onstop()当用户不再看到你的显示。的onstart()和onstop()方法可以多次调用,为活动变得可见和隐藏的用户。
  3. 一个活动的前景一生打电话onresume()直到相应的调用onpause()之间。在此期间活动是在所有其他活动的前面和与用户交互。一个活动可以经常在恢复和暂停状态之间进行,例如当设备进入休眠状态时,当一个活动结果被传递时,当一个新的意图被传递时,这些方法中的代码应该是相当轻量级的。
活动的整个生命周期由以下活动方法定义。所有这些都是钩子,当活动改变状态时,可以重写来做适当的工作。所有的活动都将实现onCreate(Bundle)做他们的初始设置;许多还将实施onpause()提交更改数据或准备停止与用户的交互。你应该打电话给你的父类在实现这些方法。

public class Activity extends ApplicationContext {
     protected void onCreate(Bundle savedInstanceState);

     protected void onStart();

     protected void onRestart();

     protected void onResume();

     protected void onPause();

     protected void onStop();

     protected void onDestroy();
 }
 




当所指定属性

  • 如果设备的配置(如资源配置定义的)更改,则任何显示用户界面的任何显示都需要更新以匹配该配置。因为活动是与用户进行交互的主要机制,它包括处理配置更改的特殊支持。


  • 除非你指定,否则,一配置的变化(如在屏幕的方向变化,语言,输入设备等),因为你想要去的时间流活动,通过活动的生命周期过程的正常onstop onPause(),(),()和ondestroy如适当。如果活动已经在前景或可见的用户,一次是在ondestroy(所谓的),然后一个新的实例的实例将创建一个活动,无论是生成的时间从以前的savedinstancestate onsaveinstancestate(束)。

  • 在某些特殊情况下,您可能希望通过一个或多个类型的配置更改来重新启动活动的重新启动。这是做安卓:在它的manifest属性configchanges。对于任何类型的配置的变化,你说你处理,你将收到一个电话到你的当前活动的onconfigurationchanged(配置)的方法,而不是重新启动。如果配置变化涉及任何你不处理,但活动仍将重新启动,onconfigurationchanged(配置)不叫。

启动活动,并得到结果
  1. 所述startActivity(意向)方法用于启动一个新的活动,这将被放置在活动堆栈的顶部。它采用一个参数,一个Intent,它描述了活动执行。
  2. 有时你想要得到的结果,从一个活动回来何时结束。例如,你可以开始一个活动,可以让用户选择一个人的联系人列表;它结束时,它返回所选定的人。要做到这一点,您可以调用startActivityForResult(意向,INT)与第二整数参数识别呼叫版本。结果会通过您的onActivityResult(INT,INT,意图)方法。
  3. 当一个活动退出,它可以调用的setResult(int)以后面的数据返回到它的父。它必须始终提供一个结果码,它可以是标准的结果RESULT_CANCELED,RESULT_OK,或开始RESULT_FIRST_USER任何自定义值。此外,它可任选地返回回包含它想要的任何额外数据的意图。所有这些信息似乎回到了父母的Activity.onActivityResult(),它最初提供的整数标识符一起。
  4. 如果一个子活动因任何原因(如崩溃)失败,父活动将收到的代码RESULT_CANCELED的结果。

 public class MyActivity extends Activity {
     ...

     static final int PICK_CONTACT_REQUEST = 0;

     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
             // When the user center presses, let them pick a contact.
             startActivityForResult(
                 new Intent(Intent.ACTION_PICK,
                 new Uri("content://contacts")),
                 PICK_CONTACT_REQUEST);
            return true;
         }
         return false;
     }

     protected void onActivityResult(int requestCode, int resultCode,
             Intent data) {
         if (requestCode == PICK_CONTACT_REQUEST) {
             if (resultCode == RESULT_OK) {
                 // A contact was picked.  Here we will just display it
                 // to the user.
                 startActivity(new Intent(Intent.ACTION_VIEW, data));
             }
         }
     }
 }


保存持久状态

  • 这里一般有2种持久状态比活动将涉及:共享类似于文献的数据(通常存储在SQLite数据库使用的是内容提供商)和内部状态,如用户首选项。
对于内容提供商的数据,我们建议活动中使用一个“编辑到位”的用户模型。即,用户品牌被有效地立即进行的任何修改,而无需额外的确认步骤。支持这种模式通常是以下两条规则的一个简单的问题:

  • 当创建一个新的文件,因为它的后盾数据库项或文件立即创建。例如,如果用户选择写一个新的电子邮件,该电子邮件的一个新条目,尽快为他们开始输入数据,因此,如果他们去任何其他活动点此电子邮件后,将创建现在出现在草案的列表。
  • 当一个活动的的onPause()方法被调用,它应该致力于为后盾内容提供商或文件中的用户所做的改动。这确保了这些变化将由即将运行的任何其他活动中可以看出。你可能会想更积极地在关键时刻你的活动的生命周期中提交你的数据:开始新的活动之前,例如,整理自己的活动,在此之前,当输入字段等的用户切换


该模型的目的是防止当用户正在活动之间导航的数据丢失,并允许该系统已被暂停之后,在任何时候安全地杀死活性(因为需要系统资源的其他地方)。请注意,这意味着用户按下BACK从你的活动并不等于“取消” - 这意味着离开活性保存离开其当前内容。在活动取消的修改必须通过其他机制来提供,如明确的“恢复”或“取消”选项。


看到的内容包有关内容供应商的详细信息。这些都是不同的活动如何调用和它们之间传播数据的一个重要方面。


Activity类还提供了管理与活动有关的内部持久化状态的API。这可以用来,例如,要记得在日历(日视图或周视图),或者用户的首选初始显示在Web浏览器用户的默认主页。


活动持续状态与方法的getPreferences(INT)管理,让您检索和修改一组与活动相关的名称/值对。要使用跨多个应用程序组件(活动,接收器,服务提供商)共享的喜好,可以使用底层Context.getSharedPreferences()方法来检索对象的偏好在一个特定的名称保存。 (注意,这是不可能共享跨应用程序包的设置数据 - 为将要需要的内容提供者)。


下面是存储用户的首选视图模式,它的持久设置日历活动的摘录:

public class CalendarActivity extends Activity {
     ...

     static final int DAY_VIEW_MODE = 0;
     static final int WEEK_VIEW_MODE = 1;

     private SharedPreferences mPrefs;
     private int mCurViewMode;

     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         SharedPreferences mPrefs = getSharedPreferences();
         mCurViewMode = mPrefs.getInt("view_mode", DAY_VIEW_MODE);
     }

     protected void onPause() {
         super.onPause();

         SharedPreferences.Editor ed = mPrefs.edit();
         ed.putInt("view_mode", mCurViewMode);
         ed.commit();
     }
 }

Permissions

当启动一个活动,你可以在设置意向和Intent.FLAG_GRANT_READ_URI_PERMISSION/或Intent.FLAG_GRANT_WRITE_URI_PERMISSION。这将授予在Intent活动访问特定的URI。访问将保持到活动结束(它仍将是整个被杀死宿主进程和其他临时破坏)。作为姜饼,如果活动已经创造了一个新的Intent被传递到onNewIntent(意向),任何新授予的权限URI将被添加到其持有现有的。

见一般权限的更多信息和安全的安全和权限的文件。


Process Lifecycle

Android系统试图保持应用程序周围尽可能长的时间,但最终会需要时内存不足移除旧的进程。如在活动的生命周期中所述,约该方法以除去决定紧密联系在一起的用户的与它相互作用的状态。在一般情况下,有四个状态的方法,可以根据在其上运行的活动,在重要性的顺序排列。它诉诸杀戮更重要的进程(第一批),系统会先杀死不太重要进程(最后的)。


  • 前台活性(在该用户当前交互的屏幕的顶部的活性)被认为是最重要的。其过程将只被杀死作为最后的手段,如果使用更多的内存比可用设备上。通常在此点装置已达到一个存储器寻呼状态,所以这是为了保持用户界面响应必需的。
  • 有形的活动(即对用户可见,但不是在前台的活动,例如一个坐在前台后面的对话),被认为是非常重要的,除非必须保持在前台运行的活动将不会被杀死。
  • 后台活动(活动是对用户不可见,并已暂停)已不再是关键,所以系统可以安全地杀死它的进程回收内存为其他前景或可见的过程。如果其进程需要被杀害,当用户返回到活动(使它显示在屏幕上再次),它的onCreate(束)方法将它的onSaveInstanceState(包)此前提供的savedInstanceState,这样可以把它称为可以重新启动它本身在相同的状态作为用户最后离开它。
  •  空进程是没有举办活动或其他应用程序组件(如服务或广播接收器类)。这些是由系统杀死非常快地存储器变低。出于这个原因,你的活动以外做任何后台操作必须在活动广播接收器和服务的上下文中执行,以确保系统知道它需要保持你的进程各地。
有时,一个活动可能需要做的独立活动周期本身存在长时间运行的操作。一个例子可能是一个摄像头应用程序,让您的图片上传到网站。上传可能需要很长的时间,应用程序应该允许用户执行时退出程序。要做到这一点,你的活动应该开始在其上载发生的服务。这允许系统的过程中进行适当的优先次序(考虑它为比其它非可见应用更为重要),用于上载的,独立的原始活性是否被暂停的持续时间,停止或结束。

概要

继承的常量

  •      ACCESSIBILITY_SERVICE 与getSystemService(类)用于检索AccessibilityManager通过已注册的事件监听器给了UI事件的用户反馈。
  •  ACCOUNT_SERVICE  与getSystemService(类)用于获取一个客户经理在您选择的时间接受意图。









ClassActivity 立即下载

相关推荐

SuperPoint+SuperGlue在HLoc中的实战效果对比:5大公开数据集测试报告

本文在HLoc框架下,对传统SIFT与深度学习组合SuperPoint+SuperGlue在五大公开数据集上的视觉定位效果进行了实战对比测试。报告详细分析了两种方案在Aachen Day-Night、RobotCar Seasons等不同光照、季节及场景下的表现,揭示了SuperPoint+SuperGlue在应对剧烈光照变化和长期外观变化时的显著优势,并提供了基于HLoc模块化设计的选型与配置策略。

weixin_29093169的博客 425

Android 精简的Class<?>(两个Activity之间的转跳)

Android Studio 4.2.2的报错提示:Could not determine java version from '11.0.8'. idea配置JDK、Tomcat 环境 提前安装JDK,配置环境变量。 目录 配置JDK 配置Tomcat idea中配置JDK和Tomcat 1、JDK:版本为jdk-7-windows-i564.exe 下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html

彬sir哥的博客 494

手把手教你用CH340给正点原子ESP8266烧录固件(附串口调试技巧)

本文详细讲解了使用CH340模块为正点原子ESP8266烧录AT固件的完整流程与关键技巧。核心在于烧录时必须使用3.3V供电,并正确连接GPIO0引脚至GND以进入下载模式。文章涵盖了从硬件接线、软件参数配置到烧录后串口调试验证的全步骤,并提供了常见问题排查方案,帮助开发者一次性成功完成固件烧录。

weixin_29201933的博客 233

android 绑定类名,Android Studio为Class跟Activity等添加注解

一、添加类注解的方式先进入设置页面: File->settings->… 如下图位置:1、在File Header 中添加注解/*** Description :** @author WSoban* @date ${DATE}*/2、新建一个Test.Class,这就证明设置成功了/*** Description :** @author WSoban* @date 2019/8/7*/...

weixin_33304092的博客 484

FFmpeg 部署与使用(含Docker部署)

ffmpeg 部署以及使用

weixin_38584583的博客 911

强化学习入门8—深入理解DDPG

本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG。DDPG是google DeepMind团队提出的一种用于输出确定性动作的算法,它解决了Actor-Critic 神经网络每次参数更新前后都存在相关性,导致神经网络只能片面的看待问题这一缺点。同时也解决了DQN不能用于连续性动作的缺点。

小菜羊的博客 4315

Android开发基础——Activity基本用法

Activity是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序中可以包含零个或多个Activity,但不包含任何Activity的应用程序则很少。

止步听风的博客 5992

C++ Qt6 qml CMakeLists.txt如何添加qrc文件

本文介绍了在Qt6项目中如何通过CMake管理QML图片资源。相比Qt5的qmake,CMake需要手动创建qrc文件并配置CMakeLists.txt。关键步骤包括:1)创建resources.qrc文件并添加图片资源;2)在CMakeLists.txt中设置CMAKE_AUTORCC为ON开启自动资源处理;3)使用qt_add_resources将qrc文件绑定到项目。配置完成后,可通过"qrc:alias"方式引用资源图片,解决了相对路径管理复杂的问题。

琅嬛福地 1454

全面了解Activity

Activity是什么?          我们都是知道android中有四大组件(Activity 活动,service 服务,Content Provider 内容提供者,BroadcastReceiver 广播接收器),Activity是我们用的最多也是最基本的组件,因为应用的所有操作都与用户相关,Activity提供窗口来和用户进行交互。 官方文档这么说:activity是独立

一起学习 731

AutoSAR配置与实践(深入篇)5.4 OS原理(下 )- 内存保护(MPU)

ECU可能由内部模块、第三方模块等各模块集成的。需求对每个模块所定义的安全等级可能有差异,需要考虑不同安全等级的模块和代码间减少相互干扰,防止程序错误传播。可以理解为包含Task、Alarm、Counter、Schedule table、ISRs、Event等基本对象的容器,用于隔离Task/Alarm等,进行内存保护。

nihaoljq2010的博客 3538

Open3D (C++) 泊松重建【2025最新版】

使用C++版本的Open3D实现点云的泊松重建

点云侠的博客 3077

Android Studio为Class跟Activity等添加注解

一、添加类注解的方式先进入设置页面: File->settings->… 如下图位置: 1、在File Header 中添加注解/** * @author SoBan * @create ${DATE} * @Describe */ 2、新建一个Test.Class,这就证明设置成功了/** * @author SoBan * @create 2017/8/10 * @De

无论何时都不要停止学习,这是改变自己的必要条件 7745

【漏洞复现】用友U9 UMWebService.asmx 任意文件读取漏洞

用友U9存在任意文件读取漏洞,未授权的攻击者可以通过该漏洞读取服务器任意文件,造成敏感信息泄露。

qq_67810151的博客 620

android.content.ActivityNotFoundException: Unable to find explicit activity class 【安卓报错】

09-24 20:03:53.521: E/AndroidRuntime(16146): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.bignerdranch.android.remotecontrol/com.bignerdranch.android.remoteco

小鹰信息技术服务部 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

安卓报错: android.content.ActivityNotFoundException: Unable to find explicit activity class

详细错误: andbuyequipment E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.resistandbuyequipment, PID: 9786 android.content.ActivityNotFoundException: Unable to find explicit activity class {c...

West_door的博客 3859

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

如何解决安卓报错:android.content.ActivityNotFoundException: Unable to find explicit activity class

本文是解决安卓开发中遇到的坑

qq_15869645的博客 5623

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android.content.ActivityNotFoundException: Unable to find explicit activity class(安卓报错)

android.content.ActivityNotFoundException: Unable to find explicit activity class

haidaoduozhu的博客 2041

could not find class android.os.userhandle,Class not found errors on blank Android Activity

When I create a blank activity in Android Studio 2.0 and try to run it on API 16 it compiles without errors. When I run it on an emulator with API 23 it runs without errors. When I run it on API 16 it...

weixin_31613423的博客 238

android启动Error: Activity class {} does not exist.Error while Launching activity

启动的时候,总是报 Activity class {} does not exist.Error while Launching activity,人都崩溃了,修改 androidManifest.xml , 也修改了 build.gradle的 applicationId, 无奈,还是不行,最后查询百度,找到的都是 adb uninstall ... ,我都还没有启动起来,uninstall也不行啊。

poem_2010的博客 1749

安卓报错:android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.

看这个错误其实就能猜到意思: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.jy.myapplication/com.example.jy.myapplication.SigninActivity}; have you declared this ...

水舞残枫的博客 1万+

Android Activity Class Not found

是因为在Mainfest里面,  name所指定的classname 是app默认package下的. 如果在其他子package下要单独指定. 例如下面         camera.CameraActivity"           android:label="@string/app_name"           android:screenOrientation="landsca

Crazy Bird 929

安卓开发异常:android.content.ActivityNotFoundException: Unable to find explicit activity class {com.jwj.ti

报这个错误:android.content.ActivityNotFoundException: Unable to find explicit activity class {com.jwj.timebank2/android.view.Menu}; have you declared this activity in your AndroidManifest.xml?解决方案1:manifes...

xxxyaozz的博客 1978

关于Android Studio使用intent跳转到新的Activity出现not an enclosing class报错的解决办法

目前遇到not an enclosing class这个问题两次,分别是犯了不同的错误: 1.第一个参数输入错误,第一个参数应该是当前活动的上下文,也就是当前Activity的参数,例如我的当前Activity是MainActivity,要跳转的Activity是BNavigatorActivity,错误代码如下: Intent ntent = new Intent(BNavigatorActivity.this, BNavigatorActivity.cla

qq_37292575的博客 3541

Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.e

今天从之前一个项目中copy现有模板,结果运行之后报错 错误信息: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tzsc/com.example.tzsc.MainActivity}: android.content.ActivityNotFoundException: Unable...

阳光大男孩!!!的博客 1418

Android错误:unable to find explicit activity class

没有找到明确的活动项!!!  在Android两个实体间切换中出现这个错误,是因为在AndroidManifest.xml没有定义另外一个实体。只需加入第二个实体即可。所有用到的Activity都必须在AndroidManifest.xml中注册,否则会报空指针错误。 .Ho

futurebp blog 2125
上一篇: 移动端网络基础--HTTP
下一篇: Activity_Class_Fragments
linuxMinx
博客等级 码龄15年 195粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值