Android开发杂记

原创 2013年12月05日 17:47:30

1、如果在一个activity A的onCreate()或者onResume()方法中调用方法startActivity()启动另一个activity B,那么activity B会在activity A的onResume方法结束后才启动,为了防止启动activity B时出现画面闪烁,activity A的window不会显示。

参考Activity.java的startActivityForResult()方法的注释。

    /**
     * Launch an activity for which you would like a result when it finished.
     * When this activity exits, your
     * onActivityResult() method will be called with the given requestCode. 
     * Using a negative requestCode is the same as calling 
     * {@link #startActivity} (the activity is not launched as a sub-activity).
     *
     * <p>Note that this method should only be used with Intent protocols
     * that are defined to return a result.  In other protocols (such as
     * {@link Intent#ACTION_MAIN} or {@link Intent#ACTION_VIEW}), you may
     * not get the result when you expect.  For example, if the activity you
     * are launching uses the singleTask launch mode, it will not run in your
     * task and thus you will immediately receive a cancel result.
     *
     * <p>As a special case, if you call startActivityForResult() with a requestCode 
     * >= 0 during the initial onCreate(Bundle savedInstanceState)/onResume() of your
     * activity, then your window will not be displayed until a result is 
     * returned back from the started activity.  This is to avoid visible 
     * flickering when redirecting to another activity. 
     *
     * <p>This method throws {@link android.content.ActivityNotFoundException}
     * if there was no Activity found to run the given Intent.
     *
     * @param intent The intent to start.
     * @param requestCode If >= 0, this code will be returned in
     *                    onActivityResult() when the activity exits.
     * @param options Additional options for how the Activity should be started.
     * See {@link android.content.Context#startActivity(Intent, Bundle)
     * Context.startActivity(Intent, Bundle)} for more details.
     *
     * @throws android.content.ActivityNotFoundException
     *
     * @see #startActivity 
     */
    public void startActivityForResult(Intent intent, int requestCode, Bundle options) {
        ...//代码详见 Activity.java
  }

2、layout A使用<include >包含另外一个layout B时,覆盖layout B中的属性满足两个规则:

1)<include >的android:id属性会覆盖layout B的android:id属性;

2)<include >只能覆盖layout B中的android:layout_相关的属性,并且至少覆盖android:layout_widthandroid:layout_height属性,否则<include >中包含的layout相关的属性会被忽略。

3、在Activiy被销毁(主动调用finish方法或者被系统销毁)时,在Activity中创建的Thread并不会被一起销毁,特别是带有循环的thread,为了防止内存泄露,应该手动销毁thread。

public class DemoActivity extends Activity {
    ...
    
    //线程结束标志
    boolean stopThread = false;

    ...
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        ...
        
        // 创建新线程
        new Thread(new Runnable() {
            @Override
            public void run() {
                Log.d(TAG, "thread is Runing....");
                while (!stopThread) {
                    // do something
                }
                Log.d(TAG, "thread is over....");
            }
        }).start();
        
        ...
    }

    ...
    
    @Override
    protected void onDestroy() {
        // 置位线程结束标志
        stopThread = true;
        super.onDestroy();
    };
    
    ...
    
}

4、Android的Task是完成一项具体的工作所涉及的Activity(可能来自不同的Application)的集合,这些Activity按被启动的顺序放在一个Back Stack中。

“A task is a collection of activities that users interact withwhen performing a certain job. The activities are arranged in a stack (the "back stack"), in theorder in which each activity is opened.” Tasks and Back Stack

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android开发之杂记(2)

1,Android FrameLayout的android:foreground属性可以设置单击时的前景色 <FrameLayout android:id="@+id/pos...

Android开发之杂记(3)

1,标签 标签闪亮登场了。当LayoutInflater遇到这个标签时,它会跳过它,并将内的元素添加到的父元素里。迷惑了吗?让我们用来替换FrameLayout,并重写之前的XML布局:     ...

android开发之杂记(1)

1,ListView的内容为空时候的处理 使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户 private void setup...

android开发杂记一

填坑一: viewpager+fragment(3个fragment),其中有一个fragment内有listview,listeview内含有播放视频控件时,进入到界面会闪屏一次。 原因是:list...

[无线] Android 系统开发学习杂记

本文旨在记录在研究和开发 Android 系统的过程中学习到的星星点点,以备日后之用~ 内容包括:开发环境、安装程序、系统分区、目录概览、进程分析、内核对比。> 开发环境1、安装 Eclipse 和 ...
  • shagoo
  • shagoo
  • 2011-08-22 17:59
  • 6257

android学习杂记(3)--百度地图开发环境的配置

密钥的申请和eclipse中得配置参见百度地图API官网。在使用其官网提供的android studio的配置方法时遇到了点问题,在此记录一下。 上面是百度地图官网提供的as配置,应该是在建好的...

Android 系统开发学习杂记

本文旨在记录在研究和开发 Android 系统的过程中学习到的星星点点,以备日后之用~ 内容包括:开发环境、安装程序、系统分区、目录概览、进程分析、内核对比。 > 开发环境 1、安装 Ecli...

form开发杂记

  • 2012-05-11 14:52
  • 58KB
  • 下载

Android杂记(一)

Android系统架构 Android大致可以分为四层架构,五块区域 1.Linux内核层 Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱...

Android实战杂记

Intro初次尝试用 Android 进行大作业,在进行的过程中学习了一些安卓的知识,现在贴下来记录一下一些比较有用的,以后可以直接作为轮子的内容。ToolBar使用知识点 toolbar http请...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)