zoukankan      html  css  js  c++  java
  • 怎么获取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类中建立一个静态方法,插入如下一段代码:

     1 package com.ffxxbb.application;
     2 
     3 import android.app.Application;
     4 
     5 public class AppContext extends Application{
     6     
     7     //建立一个静态私有变量用于存储上下文实例  
     8     private static AppContext instance;
     9     
    10     //建立一个静态方法,用于返回所需要的上下文实例
    11     public static AppContext getInstance()
    12     {
    13         return instance;
    14     }
    15     
    16     @Override
    17     public void onCreate(){
    18         super.onCreate();
    19         //将应用程序本身的上下文实例赋值给instance变量  
    20         this.instance=AppContext.this;
    21     }
    22     
    23 
    24 
    25 }

    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。

    如下

  • 相关阅读:
    mongodb性能测试:long时间戳与string格式时间
    .netcore mongodb 分页+模糊查询+多条件查询
    .netcore 图片处理
    ELEMENT-UI 封装el-table 局部刷新row
    vue-upload 封装组件-上传组件
    vue实现v-model父子组件间的双向通信
    cc.AudioSource
    Chrome插件:本地程序实现验证码破解(浏览器与本地进程通信)
    Chrome插件:微信公众号自动登录(chrome.extension)
    Chrome插件:浏览器后台与页面间通信
  • 原文地址:https://www.cnblogs.com/ffxxbb/p/3424471.html
Copyright © 2011-2022 走看看