【发布时间】:2021-02-20 00:54:02
【问题描述】:
主要活动
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
private lateinit var binding : ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
刀柄模块
@Module
@InstallIn(SingletonComponent::class)
class AppModule {
@Singleton
@Provides
fun provideActivity(): MainActivity = MainActivity()
@Singleton
@Provides
fun provideActivityUtils(@ActivityRetainedScoped context: MainActivity): ActivityUtils =
ActivityUtilsImpl(context)
}
以及具有所需功能的 utils 类
class ActivityUtilsImpl @Inject constructor(@ActivityRetainedScoped private val activity:
MainActivity) : ActivityUtils {
override fun showKeyboard() {
val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as
InputMethodManager?
imm?.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0)
}
}
当我尝试使用活动实例从 utils 类调用某些内容时,我收到错误 java.lang.IllegalStateException: System services not available to Activities before onCreate ()
试过@ActivityContext同样的东西,怎么才能让它正常调用
【问题讨论】:
标签: android kotlin dagger-hilt