获取Activity的名字和类
很多时候需要得到当前Activity的实例和Activity的名称,下面给出实现下代码。
一、获取Activity的名字
1,首先需要获取权限
- <uses-permission android:name="android.permission.GET_TASKS" />
2,编写代码
- private static String getRunningActivityName(){
- ActivityManager activityManager=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
- String runningActivity=activityManager.getRunningTasks(1).get(0).topActivity.getClassName();
- return runningActivity;
- }
二、获取当前Activity的实例
1,设置一个Activity的管理类
- public class TestActivityManager {
- private static TestActivityManager sInstance = new TestActivityManager();
- private WeakReference<Activity> sCurrentActivityWeakRef;
- private TestActivityManager() {
- }
- public static TestActivityManager getInstance() {
- return sInstance;
- }
- public Activity getCurrentActivity() {
- Activity currentActivity = null;
- if (sCurrentActivityWeakRef != null) {
- currentActivity = sCurrentActivityWeakRef.get();
- }
- return currentActivity;
- }
- public void setCurrentActivity(Activity activity) {
- sCurrentActivityWeakRef = new WeakReference<Activity>(activity);
- }
- }
2,编写一个MyApplication类,继承Application,在MyApplication中实现registerActivityLifecycleCallbacks回调,监听onActivityResumed()方法。
- <pre name="code" class="java">public class MyApplication extends Application {
- private static Context context;
- @Override
- public void onCreate() {
- context = getApplicationContext();
- registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
- @Override
- public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
- }
- @Override
- public void onActivityStarted(Activity activity) {
- }
- @Override
- public void onActivityResumed(Activity activity) {
- TestActivityManager.getInstance().setCurrentActivity(activity);
- }
- @Override
- public void onActivityPaused(Activity activity) {
- }
- @Override
- public void onActivityStopped(Activity activity) {
- }
- @Override
- public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
- }
- @Override
- public void onActivityDestroyed(Activity activity) {
- }
- });
- }
- public static Context getContext() {
- return context;
- }
- }
3,在AndroidManifest.xml中加入你写的MyApplication
- <application
- android:name="com.tes.MyApplication"
- android:allowBackup="true"
- </application>
4,实例,返回按钮,结束当前Activity
- BackBtn.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- String activityName = getRunningActivityName();
- Log.d(TAG, activityName + " is finish");
- TestActivityManager.getInstance().getCurrentActivity().finish();
- }
- });
OK,就是这个样子的了,没什么特别的了,^_^
获取Activity的名字和类相关推荐
- 操作SD卡,获取文件目录及文件工具类Android,listView
操作SD卡,获取文件目录及文件工具类Android 1.获取文件目录及文件工具类: DirectoryInfo FileScan 1.1 DirectoryInfo: package com.gls ...
- 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取 Activity 中的所有方法 | 获取方法上的注解 | 获取注解上的注解 | 通过注解属性获取事件信息 )
文章目录 前言 一.获取 Activity 中的所有方法 二.获取方法上的注解 三.获取注解上的注解 四.通过注解属性获取相关事件信息 前言 Android 依赖注入的核心就是通过反射获取 类 / 方 ...
- java 获取包下的所有类,附完整源码和测试代码
java 获取包下的所有类,完整Java代码如下: package com.example.demo.util;import java.io.File; import java.io.FileFilt ...
- Android中通过view.getContext获取Activity时得到TintContextWrapper的问题及解决public class MainActivity extends AppC
这篇博客主要介绍Android在使用AppCompatActivity时遇到的一些出乎意料的问题,下面将问题及解决方案记录如下,便于查询. 问题 在使用Androidstudio开发中,默认创建的ac ...
- Py之Xlrd:Xlrd的使用方法总结(获取的sheet名字/sheet索引/sheet内容/数和列数、获取整行和整列的值(列表) 、指定单元格的内容/数据类型)之详细攻略
Py之Xlrd:Xlrd的使用方法总结(获取的sheet名字/sheet索引/sheet内容/数和列数.获取整行和整列的值(列表) .指定单元格的内容/数据类型)之详细攻略 目录 Xlrd的使用方法总 ...
- c获取文件的名字和运行到程序的第几行功能
可以通过__FILE__和__LINE__两个宏获取文件的名字和代码运行的行数 #include<stdio.h> int main(){printf("file:%s line ...
- 获取class的名字
ele = str.get_attribute('class')(获取class的名字) 转载于:https://www.cnblogs.com/zero-77/p/8482362.html
- 一个简单的C#获取Session、设置Session类文件
一个简单的C#获取Session.设置Session类文件,本类主要实现大家最常用的两个功能: 1.GetSession(string name)根据session名获取session对象: 2.Se ...
- 微信 获取wx.config 参数 基类
微信 获取wx.config 参数 基类 原文:微信 获取wx.config 参数 基类 using System; using System.Collections.Generic; using S ...
最新文章
- 一文教会你写90%的shell脚本!
- aws iot 连接时间_AWS IoT Core 定价
- 适合新手入门的漏洞调试与分析—CVE-2010-3333
- GET_GLOBALS_FROM_SLVC_FULLSCR
- 什么是Shell,Shell教程
- Android JNI和NDK学习(5)--JNI分析API
- ASP.NET Core Logging in Elasticsearch with Kibana
- 步步高告诉你如何获客增长:4种数字化驱动案例
- 点击微信公众号菜单发送图片或文本
- 计算机应用高级教程,大学计算机应用高级教程(第3版)简介,目录书摘
- CV领域论文查找方法
- 会员卡应用管理系统源码 支持收银+积分管理+商城营销功能 含详细搭建教程
- Markdown/KaTeX/LaTeX语法、工具及模板大全(持续更新ing...)
- FIFO先进先出,FILO先进后出
- luogu P1600 天天爱跑步
- 在内容创作领域,为什么李筱懿如此成功?
- arm-linux移植zmodem命令lrz,lsz
- 智能用户增长: 一站式的消费者资产管理和运营平台
- 大文件的传输方案(scp以及文件切割)
- mysql属于dql语句的是_mysql学习日记——DQL语句