Android屏幕上的标记不会在活动之间起作用

时间:2015-11-29 10:19:49

标签: android android-layout android-intent screen oncreate

当我有一些计算要做的时候,我在屏幕之间挣扎了很多。

情况如此,我从活动A到B做出了一个意图。

Intent intentCalculator = new Intent(this, CalculatorActivity.class);
intentCalculator.putExtra(CalculatorActivity.BANK,"20");
intentCalculator.putExtra(CalculatorActivity.DURATION,"365");

startActivity(intentCalculator);

然后是活动B:

protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_calculator);

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        //tool bar
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle(getResources().getString(R.string.nav_calculator));

        //get intent
        Intent intent = getIntent();

        bank = new BigDecimal(intent.getStringExtra(CalculatorActivity.BANK));
        duration = Integer.parseInt(intent.getStringExtra(CalculatorActivity.DURATION));

        //load data
        loadData();

    }

布局" activity_calculator"是包含相对布局的协调器布局。方法loadData是一个需要很长时间才能从相对布局中填充表格并使屏幕关闭的方法。

我已经把FLAG_KEEP_SCREEN_ON放在了create和android:keepScreenOn =" true"在两个布局和我的屏幕上保持关闭。

我不知道我做错了什么,我需要一些帮助。

感谢您的关注, 最诚挚的问候

1 个答案:

答案 0 :(得分:0)

尝试使用更多标志:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

如果问题仍然存在并且也尝试使用 将android:keepScreenOn="true"归因于您活动的布局

的根视图

另一种方法是通过以下方式获取并释放唤醒锁以保持屏幕显示:

final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"");    
mWakeLock.acquire();

许可授予:

  <uses-permission android:name="android.permission.WAKE_LOCK" />

有关详细信息,请访问:http://developer.android.com/training/scheduling/wakelock.html

由于