如何获取我的应用程序的主要活动类或类名?
非常感谢!
感谢 Lee 解释如何获取类名,代码如下:
String packageName = context.getPackageName();
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(packageName);
String className = launchIntent.getComponent().getClassName();
要获取您的启动器活动,请使用http://developer.android.com/reference/android/content/pm/PackageManager.html#getLaunchIntentForPackage(java.lang.String )
getLaunchIntentForPackage
在此 Intent 调用getComponentName
和返回的 CompomemtName 调用中getClassName
http://developer.android.com/reference/android/content/ComponentName.html
这在 Kotlin 中非常适合我:
callingActivity::class.simpleName
或在 Java 中:
activity.getClass().getSimpleName()
我只是在我的主要活动中设置了一个变量,就像这样......public static Activity activity = this;
然后我可以从任何地方使用它来引用它:MainActivity.activity
。
您也可以在 onCreate() 方法中设置它,只需像这样在主活动类的顶部设置变量,public static Activity activity;
然后在 onCreate() 方法中添加activity = this;
任何位置。
这适用于任何扩展 Activity 的类,例如,public class MainActivity extends Activity
您可以从任何类调用该变量,即使它们不扩展 Activity。
希望这可以帮助。