Android中onBackPressed()方法未触发问题求助
Android返回键onBackPressed方法未触发问题求助
我在测试一个小型Android应用时,需要在按下返回键时执行特定操作,用Kotlin重写了onBackPressed()方法:
override fun onBackPressed() { super.onBackPressed() println("onBackPressed CALLED") }
但这个方法从未被调用,我肯定遗漏了某些细节,希望能得到解决建议。
原项目相关Activity代码
package me.soft.myapp import ........ class ModifyActivity : AppCompatActivity() { private var sharedPreferences: SharedPreferences? = null private var constraintLayout: ConstraintLayout? = null ..... override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_modify) sharedPreferences = getPreferences(MODE_PRIVATE) constraintLayout = findViewById(R.id.main) ...... } override fun onStop() { super.onStop() println("onStop CALLED") } override fun onResume() { super.onResume() println("onResume CALLED") } override fun onDestroy() { super.onDestroy() println("onDestroy CALLED") } override fun onRestart() { super.onRestart() println("onRestart CALLED") } override fun onBackPressed() { super.onBackPressed() println("onBackPressed CALLED") } }
为了复现问题,我新建了一个包含两个Activity的小型项目,问题依然存在。
MainActivity.kt代码
package me.soft.trybackbtnaction import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun fireSubActivity(view: View) { val intent = Intent(this, SubActivity::class.java).apply {} startActivity(intent) } /* End of fireSubActivity */ }
SubActivity.kt代码
package me.soft.trybackbtnaction import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log class SubActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_sub) } override fun onBackPressed() { super.onBackPressed() println("onBackPressed CALLED") } }
AndroidManifest.xml代码
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="mib.software.trybackbtnaction"> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.TryBackBtnAction" tools:targetApi="31"> <activity android:name=".SubActivity" android:exported="false" android:parentActivityName=".MainActivity" /> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
内容的提问来源于stack exchange,提问作者Michel
相关产品推荐
相关产品推荐

