在我的应用程序中,我打开手机的设置(对于用户启用wifi或数据网络),如下所示:
startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
当我再次调用onCreate()
时返回我的活动时?我希望可以调用onStart()
- > onResume()
。但是,由于这种情况,我猜Android因内存目的而将其杀死。令我感到困扰的是onDestroy()
从未被称为这是正常的吗?可以onCreate()
调用两次活动,而onDestroy()
没有被调用过一次?
@Override
protected void onDestroy() {
Log.e("onDestroy","Im destroyed");
try{
if(pois!=null)
pois.clear();
pois=null;
}catch(Exception e){
;
}
super.onDestroy();
unbindDrawables(findViewById(R.id.RootView));
System.gc();
}
@Override
protected void onPause(){
super.onPause();
restore();
}
答案 0 :(得分:0)
startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
后请勿致电finish()
。如果你调用finish(),你的活动就会被销毁。所以只需调用startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));在设置中,如果您单击后退而不重新创建活动,您的应用程序将被打开。将执行 onStart()和 onResume()。
答案 1 :(得分:0)
一旦调用onCreate方法,就不能在不破坏它的情况下再次调用它。
在您调用create方法然后打开手机设置的代码时,您的应用会自动调用暂停状态,并在您返回应用程序后执行您需要的设置onresume状态会自动调用。
答案 2 :(得分:0)
这可以按照你想要的方式运行得很好,你也可以尝试从终端知道应用程序堆栈中的活动
adb shell <enter>
dumpsys activity | grep -i
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
Log.e("MainActivity", "onCreate");
}
@Override
protected void onResume() {
Log.e("MainActivity", "OnResume");
super.onResume();
}