Android 第二项活动未启动
为了提高Android的熟练程度,我正在阅读BigNerdRanch的书。几天又几天运行代码,让我的屏幕变暗后,我决定添加一个命令来唤醒/取消变暗屏幕,这样我就不必不断地伸手去点击极其暗淡的节能屏幕来检查我的程序 这导致了大量的谷歌、StackOverflow等搜索,我将在本文底部附上其中最相关的内容。我现在面临的问题又回到了一个基本问题: 我的第二个活动没有启动,我知道这是因为我在代码中的任意点上放置的断点没有捕获任何内容。我不知道为什么。 以下是我的启动器活动代码的相关部分:Android 第二项活动未启动,android,Android,为了提高Android的熟练程度,我正在阅读BigNerdRanch的书。几天又几天运行代码,让我的屏幕变暗后,我决定添加一个命令来唤醒/取消变暗屏幕,这样我就不必不断地伸手去点击极其暗淡的节能屏幕来检查我的程序 这导致了大量的谷歌、StackOverflow等搜索,我将在本文底部附上其中最相关的内容。我现在面临的问题又回到了一个基本问题: 我的第二个活动没有启动,我知道这是因为我在代码中的任意点上放置的断点没有捕获任何内容。我不知道为什么。 以下是我的启动器活动代码的相关部分: @Overri
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
//screen refresher start
android.provider.Settings.System.putInt(getApplicationContext().getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS, 255);
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 255; // 100 / 100f;
getWindow().setAttributes(lp);
Intent k = new Intent(SingleFragmentActivity.this, RefreshScreen.class);
startActivity(k);
//screen refresher end
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragment_container);
if (fragment == null){
fragment = createFragment();
fm.beginTransaction().add(R.id.fragment_container, fragment).commit();
}
}
这是第二个活动的代码
public class RefreshScreen extends Activity {
int x = 5;
protected void OnCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.finish();
return;
}
}
我将断点a放在以下位置:
像这样改变你的第二项活动:
public class RefreshScreen extends Activity {
int x = 5;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.finish();
}
}
说明:
1.受保护的修改器在调用时会导致Activity不打开。
2.OnCreate()是错误的。它应该是onCreate()
3.return();完成后();是usless。像这样更改您的第二项活动:
public class RefreshScreen extends Activity {
int x = 5;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.finish();
}
}
说明:
1.受保护的修改器在调用时会导致Activity不打开。
2.OnCreate()是错误的。它应该是onCreate()
3.return();完成后();是usless。检查第二个活动中的方法名称,它应以小写字母开头:
@Override
protected void onCreate(Bundle savedInstanceState)
检查第二个活动中的方法名称,它应以小写字母开头:
@Override
protected void onCreate(Bundle savedInstanceState)
虽然发布的解决方案解决了我的主要问题,“使用OnCreate而不是OnCreate”,但我想继续说,我解决了我正在处理的最初问题。事实证明,我是找错了方向,想通过编程来调整程序每次运行时的亮度。相反,我发现WakeLock同样可以解决我的问题,因为它可以在编程时保持屏幕的最大亮度,而无需考虑电池寿命 这是我在名为BrightScreen.java的类中使用的代码,我提出了一个警告,如果电池电量低于50%,当您使用低电流USB端口时,在手机充电超过50%之前,它不会再次唤醒
//screen brightness refresh start
PowerManager pm =
(PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl =
pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "WakeAct");
//Retreive the current charge status from the BatteryManager sticky Intent
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = getApplicationContext().registerReceiver(null, ifilter);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPercent = level / (float)scale;
if (batteryPercent > 50){
wl.acquire();
} else {
if (wl.isHeld()){
wl.release();
}
}
//screen brightness refresh end
我希望这能帮助其他人。这两个关键组件是wl.acquire()和wl.release()。虽然发布的解决方案解决了我的主要问题,“使用OnCreate而不是OnCreate”,但我想跟进,并说我解决了我正在处理的最初问题。事实证明,我是找错了方向,想通过编程来调整程序每次运行时的亮度。相反,我发现WakeLock同样可以解决我的问题,因为它可以在编程时保持屏幕的最大亮度,而无需考虑电池寿命 这是我在名为BrightScreen.java的类中使用的代码,我提出了一个警告,如果电池电量低于50%,当您使用低电流USB端口时,在手机充电超过50%之前,它不会再次唤醒
//screen brightness refresh start
PowerManager pm =
(PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl =
pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "WakeAct");
//Retreive the current charge status from the BatteryManager sticky Intent
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = getApplicationContext().registerReceiver(null, ifilter);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPercent = level / (float)scale;
if (batteryPercent > 50){
wl.acquire();
} else {
if (wl.isHeld()){
wl.release();
}
}
//screen brightness refresh end
我希望这能帮助其他人。两个关键组件是wl.acquire()和wl.release()。您错过了setContentView();在你的第二个活动中。然后拆下这个。finish();。Yourr活动在创建、删除finish()时被销毁。他想要一个虚拟活动来刷新屏幕。这就是为什么最后的结局;onCreate()中的语句;您错过了setContentView();在你的第二个活动中。然后拆下这个。finish();。Yourr活动在创建、删除finish()时被销毁。他想要一个虚拟活动来刷新屏幕。这就是为什么最后的结局;onCreate()中的语句;您指的是这个吗?
Intent k=newintent(SingleFragmentActivity.this,RefreshScreen.class)代码>起始触觉(k)代码>我第一次错过了部分代码。我已经编辑了我的答案。检查一下。你是对的,我输入OnCreate而不是OnCreate是错误的,非常感谢。你指的是这个吗?
Intent k=newintent(SingleFragmentActivity.this,RefreshScreen.class)代码>起始触觉(k)代码>我第一次错过了部分代码。我已经编辑了我的答案。检查一下。你也是对的,我输入OnCreate而不是OnCreate是错误的,非常感谢。哦,哇,我觉得自己真的很愚蠢。非常感谢你。我这样做之后,突破点被抓住了。我不确定取消暗显功能是否正常工作,但无论哪种方式,你都让我更接近了一大步。经过测试,不幸的是屏幕仍然没有取消暗显,但我来这里解决的问题已经解决。谢谢。哦,哇,我觉得自己真的很笨。非常感谢你。我这样做之后,突破点被抓住了。我不确定取消暗显功能是否正常工作,但无论哪种方式,你都让我更接近了一大步。经过测试,不幸的是屏幕仍然没有取消暗显,但我来这里解决的问题已经解决。非常感谢。