激活已经运行的Activity而不是启动新的Acivity
Intent i=new Intent(this,Activity1.class);
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
用这种方式调用Activity,如果Activity在堆栈中,将会运行它的onStart,、onResume函数,而不会运行onCreate函数。这样Activity最后运行的状态就能够保存。
1.Activty A B间切换,生命周期的7个方法
执行A.startAvtivity(B),A.finish() 代码响应执行顺序:A.onPause(),B.onCreate(),B.onStart(),B.onResume(),A.onStop(),A.onDestroy().
执行A.startAvtivity(B) 代码响应执行顺序:A.onPause(),B.onCreate(),B.onStart(),B.onResume(),A.onStop().
执行B.setResult().B.finish()返回A, 代码响应执行顺序:B.onPause(),A.onActivityResult(),A.onRestart(),A.onStart(),A.onResume(),B.onStop(),B.onDestroy().
启动一个Activity A执行顺序A.onCreate(),B.onStart(),B.onResume().
待机时,A.onPause(),A.onStop(),A.onDestroy()...
2. 一般来讲,Activity就是一个可视的人机交互界面。
每一个Activity都有一个默认的Window,一般来讲,这个Window都是全屏的。也有例外,比如Dialog的Window就是非全屏的。Activity也可以利用默认Window以外的其它的Window,比如弹出一个Dialog对话框。
Window里可见的内容,就是一层一层的View。Window里的View是通过setContentView这个接口set进去的,这个ContentView就是Window里处于最根部的View。
3. 让Dialog在弹出时,背景的窗口呈现模糊的状态。
Window wnd=dialog.getWindow();
wnd.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
4. 机制参考 http://notfatboy.javaeye.com/blog/352803
在文档的Dev Guide标签项中的内容中,查看AndroidManifest.xml中标签
Activity之间切换的动画:OverridePendingTransition
5. 显式Intent:通过指定Intent组件名称来实现,一般用在程序内部。 应用程序中切换Activity时,通常知道要启动的Activity具体是哪一个,因此常用显式的Intent来实现。
隐式Intent:通过Intent Filter来实现的,一般用在没有明确指出目标组件名称的前提下,一般用于在不同应用程序之间。 需要AndroidManifest.xml中增加Activity的声明,并设置对应的Intent Filter和Action,才能被Android的应用程序框架所匹配。
6.在devices面板中选中进程,然后选中update heap,然后就可以在heap面板中查看内存使用情况了。
7.TabActivity中的菜单会和子Activity中的菜单组合在一块。
8.默认按后退键时,当前Activity会退出,重写onBackPressed后就不退出了。
@Override
public void onBackPressed()
{
}
9.Activity间传递的是对象而不是引用
这是由于Activity是有生命周期的,当这个acitivity destory掉后,它里面的数据也就没有了。
10.调用分享功能
Activity a = shareExtContext.getActivity();
Intent intent=new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");//可更换为其它类型
intent.putExtra(Intent.EXTRA_SUBJECT,"内容标题");
intent.putExtra(Intent.EXTRA_TEXT, "文本内容");
a.startActivity(Intent.createChooser(intent, "分享的菜单的标题"));
分享多个附件
http://hi.baidu.com/duxikuan/blog/item/2b6561de88f1c67494ee37b7.html
点击分享菜单项的操作就由系统来处理了。
http://www.donglongfei.com/2011/09/air-navitive-extension-android-example-share/
http://blog.youkuaiyun.com/yiyaaixuexi/article/details/6337760
http://www.android-study.com/wangluobiancheng/248.html
Android开发 系统应用调用,Intent使用总结 - 木子舟 - ITeye博客
/data/data/包名/files/下的文件,不可以通过蓝牙发送,因为两个程序间不可以共享私有目录中的数据。
http://www.eoeandroid.com/thread-99058-1-1.html
10. http://www.cnblogs.com/feisky/archive/2011/12/26/1649081.html
Android本地应用程序也使用Intent来启动Activity和子Activity_51CTO博客_intent activity应用
Android本地应用程序也使用Intent来启动Activity和子Activity_51CTO博客_intent activity应用
11. 非全屏Activity
通过主题比如Theme.Dialog来实现,不过今天Android123告诉大家设置Activity不再全屏显示的原理。Android Theme也主要是通过定义Style来实现的,实现的原理大家可以直接看Android Framework中的定义,今天给一种更简单,但相对灵活的方法,比如不要Theme.Dialog中的边框,下面就一起来看下自定义Activity大小的实现方法。
1. 创建一个样式文件到你的工程,保存在在res/values/styles.xml,这里文件名不能随便修改,内容为,注意保存时使用UTF-8编码。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Android123" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/bg</item>
</style>
</resources>
2. 上面我们定义的主题风格为Theme.Android123,父风格仍然从Theme.Dialog实现,但我们自定义了背景,位置在drawable/bg中,这里我们创建一个bg.xml文件放到res/drawable文件夹中,bg.xml的内容为
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.android.com/apk/res/android">
<padding android:left="15dp" android:top="15dp" android:right="15dp" android:bottom="15dp" />
<stroke android:width="3dip" color="#000000" />
<corners android:radius="5dp" />
<solid android:color="#ffffff" />
</shape>
里面我们定义了一个shape对象,实现背景drawable形状,其中padding代表距离边框,这里我们设置了左、上、右、下四个位置的间距。stroke可以制造出一些3D立体效果,corners是四个角,radisu属性可以设置半径,值越大越圆滑,根据运行效果你可以微调,最后soild是填充颜色,这里我们用了ffffff表示纯白。
3. 最后在androidmanifest.xml中,在你的activity节点加一个 android:theme属性,值为@style/Theme.Android123 即可。
Android Toast 长期显示解决方案
http://veright.blog.163.com/blog/static/28345389201072115940323/
怎么在android的来电界面上自定义个Popup?用它来给用户提供些信息,而且是不可点击的,用户可以继续听电话,怎么做?