在fragment的使用中经常要使用getActivity获取依附的activity,但在某些情况下回返回null,如果不加处理可能会因空指针异常导致程序崩溃.所以建议每次使用getActivity...方法都需检查一下. isAdd(){ //这里进行你想要的操作 getActivity() } 或者 if(getActivity()!...=null){ //这里进行你想要的操作 } 注:isAdd()是fragment里的一个方法 *android.support.v4.app.Fragment @Contract(pure=true...isAdded() Return true if the fragment is currently added to its activity.* 表示当前fragment已被添加到activity此时getActivity
https://blog.csdn.net/u010105969/article/details/54846264 之前在做项目的时候没怎么在意后台返回的null这个问题,因为只有数据为空的时候后台才可能返回...然而不怕一万,就怕万一,总会有万一的情况,而这种情况还是出现在了上线之后,一旦返回null就会让App崩溃。后来和后台沟通了一下为什么会返回null,并且希望后台不要返回null。...我们的后台使用PHP写的,后台开发人员告诉我,PHP是弱语法,返回的null也是自动生成的,有时返回的是null,有时返回的是“null”字符串,而有时返回的是“”空字符串。...后台说之后这些会进行一下统一,尽量不返回null。之后的统一是之后的事,现在还得对null进行处理。...我们还是应该从根源处解决这个问题,我们不应该让后台返回给我们null。 启发:敢于去想,多查资料。
fragmentManager.beginTransaction(); beginTransaction.add(R.id.layout,fragment); beginTransaction.addToBackStack(null...第三步,调用addToBackStack(true)方法,目的为了允许用户通过按下返回按键返回到前一个Fragment状态,beginTransaction.commit()提交。...图片来源官方: 生命周期 onAttach(): 一旦片段与其活动相关联就被调用; onCreate(): 片段被调用创建; onCreateView(): 创建并返回相关的视图结构; onActivityCreated...(): 表示活动已被创建完成了,这里是activity创建成功; onStart(): 片段对用户可见; onResume(): 片段与用户开始交互; onPause(): 片段与用户不再交互;...(MyFragment)fragmentManager(). findFragmentById(R.id.layout); MainActivity activity=(MainActivity)getActivity
Fragment概述 1.1 介绍 Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间,出现的初衷是为了适应大屏幕的平板电脑,可以将其看成一个小型Activity...,又称作Activity片段。...FragmentTransaction类提供了方法完成增删等操作,完成后调用FragmentTransaction.commit()方法提交修改 transaction.add():往Activity里面添加一个片段...),那么回退操作就是remove(frag1));如果没添加该语句,用户点击返回按钮会直接销毁Activity。...备注: 如果在Fragment中需要Context,可以通过getActivity(),如果该Context需要在Activity被销毁后还存在,则使用getActivity.getApplicationContext
---- Fragment代表了Activity的子模块,因此可以把Fragment理解成Activity片段。 Fragment的几个特征: Fragment总是作为Activity界面的组成部分。...Fragment可调用getActivity()方法获取它所在的Activity,Activity可调用FragmentManager的findFragmentById()或findFragmentByTag...调用popBackStack()方法将Fragment从后台栈中弹出(模拟用户按下Back键)。...调用addOnBackStackChangeListener()注册一个监听器,用于监听后台栈的变化。...可通过FragmentManager来获得FragmentTransaction,代码片段如下: FragmentManager fragmentManager = getFragmentManager
例如,用户可以点按设备的返回按钮,或者 Activity 可能需要启动不同的 Activity。...您可以在一个 Activity 中组合多个片段,从而构建多窗格界面,并在多个 Activity 中重复使用某个片段。...与 Activity 生命周期协调一致 片段所在 Activity 的生命周期会直接影响片段的生命周期,其表现为,Activity 的每次生命周期回调都会引发每个片段的类似回调。...o 与 Activity 通信 片段可通过 getActivity() 访问 FragmentActivity 实例,并轻松执行在 Activity 布局中查找视图等任务 View listView...获取对 Fragment 的引用来调用片段中的方法。
好久没写Android今天心血来潮写了一个,但是File[] files =Dir.listFiles()返回null,提示java.lang.NullPointerException: Attempt...to get length of null array,我权限也加了,看了很多文章全部无用,问题依旧存在,这篇博客https://blog.csdn.net/xiaopang_love_study/article
项目简介 XUpdate是一个轻量级、高可用性的Android全量版本更新框架。 XUpdate是为了解决在不同项目组、不同平台之间进行统一的Android全量版本更新的库。...Android基础库: https://github.com/xuexiangjys/XUpdate 版本更新后台服务: https://github.com/xuexiangjys/XUpdateService...,自动更新,需要root权限【静默安装需要】 .update(); 支持后台更新 开启支持后台更新后, 用户点击“后台更新”按钮后,就可以进入到后台更新,不用一直在更新界面等待....自定义版本更新解析器 如果你不想使用默认版本更新返回的接口数据, 那么你可以实现IUpdateParser接口即可实现解析器的自定义, 示例如下: XUpdate.newBuild(getActivity...首先你需要确保能否找到下载下来的最新APK,如果你设置了MD5值的话,还需要判断下载下来的最新APK计算出来的MD5值和后台接口返回的MD5值是否一致(计算文件的MD5值Demo中有对应的方法); 其次你需要手动安装一下
今天给大家介绍的XUpdate就是一个轻量级、高可用性的Android全量更新的框架。全量更新没有增量更新那么复杂的处理逻辑,核心内容无非以下三点: 查询是否有新版本。 版本信息展示。...支持静默下载(后台更新)、自动版本更新。 提供界面友好的版本更新提示弹窗,可自定义其主题样式。 支持自定义版本更新检查器、版本更新解析器、版本更新提示器、版本更新下载器、版本更新安装、出错处理。...兼容Android6.0、7.0和8.0。...版本更新解析器 IUpdateParser: 解析服务端返回的数据结果。 版本更新提示器 IUpdatePrompter: 展示最新的版本信息。...只需要服务端返回 UpdateStatus字段为2即可。 当然如果你自定义请求返回api的话,只需要设置 UpdateEntity的 mIsForce字段为true即可。
,碰到了 You cannot start a load for a destroyed activity 这个异常; 场景描述:点击进入一个Activity 当中请求网络 请求成功后 根据服务器返回的图片...RequestManagerRetriever.get(); return retriever.get(fragment); } 可以看到这里有很多的重构的方法,但是最终都会返回一个...fragment) { if (fragment.getActivity() == null) { throw new IllegalArgumentException...= null && fragment.getActivity() !...= null && fragment.getActivity() !
(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity...()); // Get the layout inflater LayoutInflater inflater = getActivity().getLayoutInflater...()); // Get the layout inflater LayoutInflater inflater = getActivity().getLayoutInflater...); } } 拿到username和password的引用,在点击登录的时候,把activity强转为我们自定义的接口:LoginInputListener,然后将用户输入的数据返回...可以看到,传统的Dialog旋转屏幕时就消失了,且后台log会报异常~~~使用DialogFragment则不受影响。 好了,关于DialogFragment的介绍结束~~~~ 源码点击下载
Fragment可通过getActivity()方法获取所在的Activity,Activity可以调用FragmentManager的findFragmentById()或findFragmentByTag...· Fragment获取它所在的Activity:调用Fragment的getActivity()方法即可返回它所在的Activity。 ...· 调用popBackStack()将Fragment从后台栈中弹出(模拟BACK键)。 ...· 调用addOnBackStackChangeListener()注册一个监听器,用于监听后台栈的变化。 ...9 fragmentTransaction.addToBackStack(null); 10 // 5、提交事务 11 fragmentTransaction.commit(); 本篇博文仅介绍了Fragment
点击返回箭头按钮,关闭 我希望在detailFragment回到 homeFragment。...( new ColorDrawable(getResources().getColor(android.R.color.transparent))); //在这里,我把图标改成透明色了...MenuItem item) { if (item.getItemId() == android.R.id.home) { getActivity().getFragmentManager...= null) actionBar.setIcon(actionbar_lastHomeIcon); } @Override public void onPause...( android.R.id.home); actionbar_lastHomeIcon = imageView.getDrawable(); }
Google从 API 21 新增了接口 android.app.usage , 通过这个api我们可以统计到每个app的使用情况,启动次数,启动时间等,也可以判断是否前后台,比较方便,今天就来深入的学习一下...Google从 API 21 新增了接口 android.app.usage , 通过这个api我们可以统计到每个app的使用情况,启动次数,启动时间等,也可以判断是否运行在前后台,比较方便,也可以用作埋点...> lr=context.getRunningAppProcesses(); if (lr == null) { return null; } for...|| queryUsageStats.isEmpty()) { return null; } UsageStats recentStats = null;...UsageStatsManager mUsageStatsManager = (UsageStatsManager) getActivity() .getSystemService
开发中,有两种引用方式,一个是 Android 3.0 时加入的,一个是supportV4包中的。...Fragment中的返回 在Fragment中经常用到自定义标题栏,而返回按钮的点击事件一般设置为:getActivity().onBackPressed();,这样可以使得点击返回按钮和点击手机上的返回键的效果一致...即 启动Activity–>显示FragmentA–>显示FragmentB–>用户点击返回按钮或者手机上的返回键–>退出了Activity。...= null && mActionBar.collapseActionView()) { return; } if (!...=null&&mActionBar.collapseActionView()) { return; } if (!
Bitmap,以最小化昂贵的垃圾回收和堆碎片影响; 深度的生命周期集成,以确保仅优先处理活跃的Fragment和Activity的请求,并有利于应用在必要时释放资源以避免在后台时被杀掉。...目前,在 Android 开发中 Glide 算得上是图片加载框架中的佼佼者了。其巧妙的设计和卓越的性能令人赞叹不已。...fragment) { return getRetriever(fragment.getActivity()).get(fragment); } @NonNull public static RequestManager...() " + "returns null (which usually occurs when getActivity() is called before the Fragment...我们可以看出,supportFragmentGet 中返回的 requestManager 是和当前 fragment 生命周期绑定在一起的。
; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap...; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore...(), R.layout.fragment2, null); imageview = (ImageView) inflate.findViewById(R.id.imageview); imageview.setOnClickListener...Bitmap bitmap = data.getParcelableExtra("data"); imageview.setImageBitmap(bitmap); } //相机返回值...if(requestCode==2000 && resultCode==getActivity().RESULT_OK){ Intent intent = new Intent("com.android.camera.action.CROP
WebViewClient以及WebViewChrome接口中的onPageStart以及onPageFinish,onProgressChange这几个回调方法中判断当前页面是否存在,若不存在则直接返回...@Override public void onPageFinished(WebView view, String url) { if (getActivity() == null || getActivity...() == null || getActivity().isFinishing()) { return; } view.setLayerType...) == null || getActivity().isFinishing()) { return; } view.setLayerType...例如WebView中播放声音在页面关闭之后还声音的问题,WebView页面跳转其他页面后返回显示空白不刷新的问题等等。
标题图 女孩:又周末了哦~ 男孩:那么今日来开个交流会,我们也学一学人家高大尚的大会,自己开一个,广州站,Android开发攻城狮交流会~ 1.Fragment概要: Android从3.0开始引入了Fragment...onAttach(): 一旦片段与其活动相关联就被调用; onCreate(): 片段被调用创建; onCreateView(): 创建并返回相关的视图结构; onActivityCreated(...MyFragment myFragment = getFragmentManager().findFragmentById(R.id.fragment); 接着通过调用getActivity()方法来获取当前片段和相关联的活动实例...: MainActivity activity = getActivity(); 闲聊单位和尺寸 px,pt,dp,sp 女孩:哥,px,pt是?...男孩:px在Android中为最小元素单元,px为像素,pt是磅数的意思,在Android通常作为字体的单位来用~ 女孩:那dp和sp呢?