【问题标题】:Android: Two actvities as launchersAndroid:作为启动器的两个活动
【发布时间】:2013-12-10 13:40:03
【问题描述】:

我正在开发储物柜应用程序。我创建了服务和接收器来隐藏默认的 android locker。但是几天来我的设置活动有问题。我正在寻找一个解决方案,如何将两个活动作为启动器。我想做这样的事情: 储物柜活动仅在手机锁定时启动。只有当我按下菜单中的应用程序图标时才设置活动。可以编程吗? 感谢您的帮助。

【问题讨论】:

  • 我不认为你可以创建两个启动器,但为什么不能有一个启动器活动,然后在检查你需要的设置后,使用意图来启动你需要的正确活动?
  • 我写了类似的东西: KeyguardManager kgMgr = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);布尔显示 = kgMgr.inKeyguardRestrictedInputMode(); if (!showing) { Intent i = new Intent(StartLockScreen.this, SettingsActivity.class);开始活动(一); } else { Intent i = new Intent(StartLockScreen.this, LockActivity.class);开始活动(一); } finish();,它只对 LockActivity 有效,设置仍然不显示。但是按pp图标后,锁屏并没有出现那么成功。

标签: android android-activity simultaneous


【解决方案1】:

您可以尝试启动相同的活动,但针对每种情况更改内容视图(进入 onCreate)。比如:

if (isLocked()) {
    setContentView(R.layout.locker_activity);
} else {
    setContentView(R.layout.settings_activity);
}

【讨论】:

  • 我不认为他只是想改变布局,而是实际上在不同的活动中启动。
【解决方案2】:

您可以只使用一个活动作为启动器,并使用片段来加载您想要的内容。像这样的:

public class LauncherActivity extends FragmentActivity {
super.onCreate(savedInstanceState);

Fragment fragment;
if (isLocked()) {
    fragment = new LockerFragment();
}   
else {
    fragment = new SettingsFragmentFragment();
}
getFragmentManager().beginTransaction().add(R.id.container_id,fragment).commit();

}

【讨论】:

    猜你喜欢
    • 2012-02-14
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2016-07-28
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多