Android 活动不启动
我使用此代码从我的Android 活动不启动,android,android-activity,Android,Android Activity,我使用此代码从我的主菜单开始一个新游戏,一切正常,但当游戏结束时,用户会看到一个弹出窗口(只是另一个名为GameFinished的活动,带有主题。对话框)。用户可以选择是否要再次玩游戏或返回主菜单。这也可以正常工作,但是当我从我的main菜单启动另一个游戏时,什么都没有发生,调试器显示该行已执行 视觉指南: A-->B-->C--完成-->B--完成-->A 在此之后,我不能: A-->B 这是我(非常大)的日志: 再次播放(游戏结束时接到电话): 唯一相关的其他事情是我使用了AsyncTask
主菜单开始一个新游戏,一切正常,但当游戏结束时,用户会看到一个弹出窗口(只是另一个名为GameFinished
的活动,带有主题。对话框
)。用户可以选择是否要再次玩游戏或返回主菜单
。这也可以正常工作,但是当我从我的main菜单启动另一个游戏时,什么都没有发生,调试器显示该行已执行
视觉指南:
A-->B-->C--完成-->B--完成-->A
在此之后,我不能:
A-->B
这是我(非常大)的日志:
再次播放(游戏结束时接到电话):
唯一相关的其他事情是我使用了AsyncTask和处理程序。根据您的错误,您正在泄漏以前注册的IntentReceiver
您需要注销IntentReceiver,对于您的SimpleMath
活动,onPause
方法将是执行此操作的好地方
@Override
protected void onPause() {
super.onPause();
unregister(); // here
}
根据您的错误,您正在泄漏先前注册的IntentReceiver
您需要注销IntentReceiver,对于您的SimpleMath
活动,onPause
方法将是执行此操作的好地方
@Override
protected void onPause() {
super.onPause();
unregister(); // here
}
ObAt,我的申请中有完全相同的错误。您曾写道您不使用IntentReceiver,但这可能不是真的
似乎您正在使用三星设备的特殊功能-MultiWindow,因此,如果您在清单中注册了意向过滤器,如我:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!-- SAMSUNG MULTI-WINDOW -->
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
</intent-filter>
<!-- SAMSUNG MULTI-WINDOW -->
<meta-data android:name="com.sec.minimode.icon.portrait.normal"
android:resource="@drawable/ic_launcher" />
<meta-data android:name="com.sec.minimode.icon.landscape.normal"
android:resource="@drawable/ic_launcher" />
然后,可能是三星设备在自己的后台注册IntentReceiver,以正确处理与多窗口功能相关的一些任务。我在日志中看到这个错误已经有几个月了,它从来没有出现过任何问题。所以我只是忽略了这一点,直到三星解决了他们这边的问题。这就是我的看法。但是,我的应用程序中有完全相同的错误。您曾写道您不使用IntentReceiver,但这可能不是真的
似乎您正在使用三星设备的特殊功能-MultiWindow,因此,如果您在清单中注册了意向过滤器,如我:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!-- SAMSUNG MULTI-WINDOW -->
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
</intent-filter>
<!-- SAMSUNG MULTI-WINDOW -->
<meta-data android:name="com.sec.minimode.icon.portrait.normal"
android:resource="@drawable/ic_launcher" />
<meta-data android:name="com.sec.minimode.icon.landscape.normal"
android:resource="@drawable/ic_launcher" />
然后,可能是三星设备在自己的后台注册IntentReceiver,以正确处理与多窗口功能相关的一些任务。我在日志中看到这个错误已经有几个月了,它从来没有出现过任何问题。所以我只是忽略了这一点,直到三星解决了他们这边的问题。这就是我的看法我在SimpleMath中不使用onPause,我只覆盖onResume方法unregister()未定义“您应该!暂停时的onPause
是取消注册您制作的接收器的最佳位置,这样您在进行下一个活动时就不会泄露。谢谢!但我该怎么称呼注销者呢?Eclipse无法找到此方法。如果不查看您的SimpleMath
活动代码,我将无法进一步帮助您。你能编辑你的问题并添加到那里吗?奇怪的是我从来没有使用过IntentReceiverI,在SimpleMath中我不使用onPause,我只覆盖onResume方法unregister()未定义“您应该!暂停时的onPause
是取消注册您制作的接收器的最佳位置,这样您在进行下一个活动时就不会泄露。谢谢!但我该怎么称呼注销者呢?Eclipse无法找到此方法。如果不查看您的SimpleMath
活动代码,我将无法进一步帮助您。你能编辑你的问题并添加到那里吗?奇怪的是,我从来没有使用过IntentReceiverI,我正在使用三星Galaxy S3和JB(因此它有多窗口),这将解释很多!我将测试它,但非常感谢:)我正在使用三星Galaxy S3和JB(因此它有多窗口),这将解释很多!我将测试它,但非常感谢:)
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_game_gamefinished);
Window window = this.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
android.view.WindowManager.LayoutParams params = getWindow()
.getAttributes();
params.width = android.view.WindowManager.LayoutParams.MATCH_PARENT;
getWindow().setAttributes(
(android.view.WindowManager.LayoutParams) params);
setListeners();
}
public void setListeners() {
button_restart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AppData.restartGame = true;
finish();
}
});
button_mainmenu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AppData.finishMe = true;
finish();
}
});
}
@Override
protected void onPause() {
super.onPause();
unregister(); // here
}
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!-- SAMSUNG MULTI-WINDOW -->
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
</intent-filter>
<!-- SAMSUNG MULTI-WINDOW -->
<meta-data android:name="com.sec.minimode.icon.portrait.normal"
android:resource="@drawable/ic_launcher" />
<meta-data android:name="com.sec.minimode.icon.landscape.normal"
android:resource="@drawable/ic_launcher" />