怎么获取Android应用程序的上下文
在一个应用里面,有很多activity,而这些activity之间经常要进行互相启动、往复跳转、还有就是通过Notification启动。当activity多了之后,如果设置他的模式为单例模式,或者不设置模式。在反复启动后会出现数据不同步、fc等各种未知的错误。于是我们就想过一种办法就是通过保存一个Context,然后每次启动一个新activity之后再关闭原来的activity(注:关闭的这个activity,是不会再通过返回键之类的操作来显示的activity)。还有就是当我们启动的activity太多,然后又退出程序之后,如果后台service收到新消息而再次启动聊天界面的activity也会出现fc的情况,在这种情况下我们也需要在退出应用的时候逐个退出开启的activity。在我们退出activity的时候需要什么?就是需要上下文,那我们应该保存什么样的上下文才比较好呢,我们不能只仅仅单单的保存某一个activity的上下文吧?
1、首先我们建立一个工程。可以生成一个空白的activity,也可以不用。然后在工程下建立一个AppContext.java类,并且继承于Application。

2、在AppContext.java类中建立一个静态方法,插入如下一段代码:
package com.ffxxbb.application;
import android.app.Application;
public class AppContext extends Application{
//建立一个静态私有变量用于存储上下文实例
private static AppContext instance;
//建立一个静态方法,用于返回所需要的上下文实例
public static AppContext getInstance()
{
return instance;
}
@Override
public void onCreate(){
super.onCreate();
//将应用程序本身的上下文实例赋值给instance变量
this.instance=AppContext.this;
}
}
3、在Manifest.xml文件当中,在<Application>标签当中加入name属性为: android:name="com.ffxxbb.application.AppContext"
<application
android:name="com.ffxxbb.application.AppContext"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
4、我们在应用程序中任何一个地方都可以通过AppContext.getInstance();获得上下文。然后我们就可以通过上下文.finish()等方法进行关闭activity。
如下
怎么获取Android应用程序的上下文的更多相关文章
- 如何在不同的语言/平台中获取Android ID
如何在不同的语言/平台中获取Android ID 最近开发工作中需要使用到AndroidID,在Unity和native code中也需要使用,java获取很方便,Unity中也不难,最难的是在nat ...
- Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8201936 在前文中,我们简要介绍了Andro ...
- android的程序运行数据存放在哪里?
Android应用开发中,给我们提供了5种数据的存储方式1 使用SharedPreferences存储数据2 文件存储数据3 SQLite数据库存储数据4 使用ContentProvider存储数据5 ...
- Android应用程序插件化研究之AssertManager
最近在研究Android应用的插件化开发,看了好几个相关的开源项目.插件化都是在解决以下几个问题: 如何把插件apk中的代码和资源加载到当前虚拟机. 如何把插件apk中的四大组件注册到进程中. 如何防 ...
- Android应用程序资源的查找过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8806798 我们知道,在Android系统中, ...
- Android应用程序资源管理器(Asset Manager)的创建过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8791064 在前面一篇文章中,我们分析了And ...
- Android应用程序组件Content Provider的共享数据更新通知机制分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6985171 在Android系统中,应用程序组 ...
- Android应用程序组件Content Provider在应用程序之间共享数据的原理分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6967204 在Android系统中,不同的应用 ...
- Android应用程序组件Content Provider的启动过程源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6963418 通过前面的学习,我们知道在Andr ...
随机推荐
- php漏洞挖掘与代码审计方法
在甲方公司做代码审计一般还是以白盒为主,漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露等. 1.xss + sql注入 其中占大头的自然是XSS与SQ ...
- 一天干掉一只Monkey计划(序)【转】
http://www.cnblogs.com/Zephyroal/archive/2011/10/10/2206509.html 一天干掉一只Monkey计划(序) 一天干掉一只Monkey计划(序) ...
- http://blog.chinaunix.net/uid-20577907-id-3519578.html
http://blog.chinaunix.net/uid-20577907-id-3519578.html
- (转)MFC的GUI窗口使用Console输出函数printf
原文链接 在GUI程序中使用printf函数: #include <io.h> #include <fcntl.h> void InitConsole() { ; FILE* ...
- ubuntu i3 xterm中文输入显示问题解决
i3config 配置 !启动fcitx输入法管理 exec fcitx -d Xresource配置 !设置输入法管理器为fcitx xterm*inputMethod: fcitx !设置英文字体 ...
- 查看进程id, 父进程id _How do I get the parent process ID of a given child process?
How to get parent pid from a given children pid? I know I can mannully check it under /proc, I am wo ...
- HDU 4008 Parent and son LCA+树形dp
题意: 给定case数 给定n个点的树,m个询问 以下n-1行给出树边 m个询问 x y 问:以x为根.y子树下 y的最小点标的儿子节点 和子孙节点 思路: 用son[u][0] 表示u的最小儿子 s ...
- jsp 页面图片为圆形
直接设置img标签的style属性即可 <img alt="" src="链接地址" style="width: 80px;height: 80 ...
- C#异常处理机制初步
原地址:http://www.sudu.cn/info/html/edu/net/20071227/50446.html 一.c#的异常处理所用到关键字 try 用于检查发生的异常,并帮助发送任何可能 ...
- HTML ui ol dl
<!-- 超链接target的属性 _blank 在新窗体中打开被链接文档. _self 默认. 在同样的框架中打开被链接文档. _parent 在父框架集中打开被链接文档. _top 在整个窗 ...