我正在创建一个简单的电子书,但我需要更改某些活动的屏幕亮度,以便从我的主要活动中,接收蓝牙数据并仍在后台运行当书正在运行时。 我的问题是:如何从MainActivity调用一个函数到Page1Activity,或者相反,不管。从另一个活动中更改活动设置的最佳方法
,如果我的活动之一把这个代码,我可以改变活动的亮度,但我真的需要。如果我使用一个调用,从一个到另一个
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = adjusted;
getWindow().setAttributes(lp);
,页面仅会在创建时显示更改,但我不想在收到数据时重新创建页面。
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE,
android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS, (int)(255*adjusted));
然后,我需要知道,如果有一种方式来获得或储存使用getWindow()
的活动,或者是否存在一种方法来调用两个活动之间或是否有另一种方式来做到这一点的功能。
PS:我知道改变音量的功能,如果我在主要活动中使用它,整个系统的音频会立即改变,如果有人知道像这样的亮度使用功能,它会成为解决我的问题最简单的方法。
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
volAdjusted, AudioManager.FLAG_SHOW_UI);
您不应该尝试直接从其他Android组件访问一个'Activity'。如果另一个可见,则不能保证存在一个“活动”。要做你想做的事,你可以使用'SharedPreferences'中的设置,或者当你启动你想要控制的'Activity'时,在'Intent'中加入一个值。 – Squonk 2013-05-13 22:05:47
我将不得不创建一个线程来监听SharedPreferences中的变量? – 2013-05-13 22:40:08