1
主要問題:我需要在屏幕截圖發生後更新UI。如何從截圖後的BroadcastReceiver更新UI
我試着以編程方式在MainActivity.java的onResume()中創建一個BroadcastReceiver,並且由於某種原因它沒有截取屏幕截圖。 因此,我嘗試了在清單中聲明的BroadcastReceiver,它正確地截取了屏幕截圖,但我無法更新UI。在AndroidManifest.xml中定義爲內部類活動的
廣播接收器必須是靜態還是我得到這個錯誤:
java.lang.RuntimeException: Unable to instantiate receiver com.patmyron.blackbox.MainActivity$MyReceiver: java.lang.InstantiationException: java.lang.Class<com.patmyron.blackbox.MainActivity$MyReceiver> has no zero argument constructor
如果我嘗試使用findViewById()MyReceiver內,我得到的錯誤:
Non-static method 'findViewById(int)' cannot be referenced from a static context
下面是代碼我目前:
廣播接收器在AndroidManifest.xml中聲明:中MainActivity
<receiver android:name=".MainActivity$MyReceiver" >
<intent-filter>
<action android:name="android.intent.action.MEDIA_SCANNER_SCAN_FILE" />
<data android:scheme="file" />
</intent-filter>
</receiver>
廣播接收器類:
public static class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.e("this works", "SCREENSHOT");
// ((TextView) findViewById(R.id.tv13)).setText("SCREENSHOT");
}
}