2012-04-17 139 views
0

我尝试了以下代码,以便在用户尝试按Home按钮启动主屏幕时重新启动我的活动。发生onSaveInstanceState事件时重新启动活动

@Override 
public void onSaveInstanceState(Bundle state){ 
    try{ 
     Intent i = new Intent(this, LockerAppActivity.class); 
     startActivity(i); 
    }catch(Exception ex){ 
     Toast.makeText(this, ex.getMessage(), Toast.LENGTH_LONG); 
    } 
} 

没有发生异常并且代码被触发。但活动并未开始。我究竟做错了什么 ?

回答

4

步骤1:删除您的onSaveInstanceState()实施。

步骤#2:不要尝试“当用户尝试按主页按钮启动主屏幕时重新启动[您的]活动”,因为这是不必要的。

步骤3:解决您认为遇到的任何问题,这些问题会导致您尝试使用“重新启动”技术。

例如,给定类名LockerAppActivity,我猜你正在尝试创建一个容易失败的“锁定屏幕”。考虑到任何人都可以超越他们,为什么你会困扰,超越了我。无论如何,确保您的应用程序在用户按HOME时运行的正确方法是成为主屏幕。

+0

非常感谢。那么,是的,这正是我想要做的。我正在尝试创建一个应用程序,使其在启动时无法运行设备上的其他应用程序。意思是说,这个应用程序是在设备启动后启动的,它是唯一允许运行的应用程序。请注意,这不是一个标准的消费者应用程序,而是一个商业应用程序。你如何看待这件事? – 2012-04-17 15:49:49

+0

@HeshanPerera:“你如何看待这件事?” - 正如我在答案中指出的那样,让它成为主屏幕。它仍然可以通过在安全模式下重新启动删除;如果你想阻止*那*,你将需要根设备和/或安装自定义固件。 – CommonsWare 2012-04-17 15:54:53

+0

再次感谢。你为我清理了很多东西。 – 2012-04-17 16:04:27

相关问题