[英]OnActivityResult isn't being called
我正在調用 startActivityForResult 並且其他 Activity 正確啟動,但是沒有調用 onActivityResult 方法,它只是調用 OnCreate
這是我調用 startActivityForResult 的代碼
val intent = Intent(this, MainActivity::class.java);
startActivityForResult(intent, 2);
這是未調用的 MainActivity 上的 onActivityResult 方法。 這是代碼
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
System.out.println("ewe")
super.onActivityResult(requestCode, resultCode, data)
// check if the request code is same as what is passed here it is 2
if (requestCode == 2) {
//do the things u wanted
val repetitionTime = 10L;
alarm = getSystemService(ALARM_SERVICE) as AlarmManager
val intent = Intent(applicationContext, Pedometer::class.java)
val pi = PendingIntent.getActivity(applicationContext, 0, intent, 0)
val alarmInfo = AlarmManager.AlarmClockInfo(System.currentTimeMillis() + 5000, pi);
alarm!!.setAlarmClock(alarmInfo, pi);
}
}
我已經調試了代碼,並且根本沒有調用該方法。
我嘗試尋找答案並嘗試:
- 我正確調用 startActivityForResult 並使用正數。
- 我的清單上沒有 android:launchMode="singleInstance"。 這是我的清單文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.walker">
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Walker">
<activity android:name=".Pedometer"></activity>
<activity android:name=".MainActivity" android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="TaskPlanner" android:exported="true"> </receiver>
</application>
</manifest>
我嘗試在互聯網上尋找更多答案並嘗試查看文檔但找不到任何東西。 任何幫助都非常感謝,提前感謝任何回答的人!
解決方案
看起來我只是不明白如何 startActivityForResult。 事實證明 startActivityForResult 啟動一個活動,然后在新啟動的活動完成后調用 onActivityResultMethod 。 我試圖創建一個新活動並在創建時使用它傳遞一個參數,所以它當然沒有用。
要將參數傳遞給我剛剛使用的新活動:
val intent = Intent(this, MainActivity::class.java);
intent.putExtra("result",2);
setResult(2,intent);
startActivity(intent);
finish();//finishing activity
然后檢索值
val extras = intent.extras
if (extras != null) {
val value = extras.getString("result")
extras.putString("result", null);
}
看起來我只是不明白如何 startActivityForResult。 事實證明 startActivityForResult 啟動一個活動,然后在新啟動的活動完成后調用 onActivityResultMethod 。 我試圖創建一個新活動並在創建時使用它傳遞一個參數,所以它當然沒有用。
要將參數傳遞給我剛剛使用的新活動:
val intent = Intent(this, MainActivity::class.java);
intent.putExtra("result",2);
setResult(2,intent);
startActivity(intent);
finish();//finishing activity
然后檢索值
val extras = intent.extras
if (extras != null) {
val value = extras.getString("result")
extras.putString("result", null);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.