use*_*225 3 android android-intent android-activity
我通过以下方式获得了一个活动课:
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
String activityClassName = launchIntent.getComponent().getClassName();
Class<?> activityClazz = Class.forName(activityClassName);
Run Code Online (Sandbox Code Playgroud)
是否可以使用activityClazz?创建此Activity的实例?如果是这样,怎么办?
(我的代码在独立的Java类中。不在活动或服务中。)
从技术上讲,您可以创建一个这样的实例Activity。但是,此实例将是无用的,因为Context尚未设置其基础。
该规则是,你永远也不会创建Android组件的实例(Activity,Service,BroadcastReceiver,Provider)你自己(使用new关键字或其他方式)。这些类仅应由Android框架创建,因为Android设置了Context这些对象的基础并管理生命周期。
简而言之,如果您需要创建这样的实例,则您的体系结构存在缺陷Activity。
| 归档时间: |
|
| 查看次数: |
2931 次 |
| 最近记录: |