在我的Android应用程序中,当我旋转设备(滑出键盘)然后我Activity重新启动(onCreate被调用).现在,这可能是它应该如何,但我在onCreate方法中做了很多初始设置,所以我需要:
onCreate不会再次调用,布局只是调整或onCreate不调用.我在我的Android应用程序中执行状态栏通知,由c2dm触发.如果应用程序正在运行,我不想显示通知.您如何确定应用程序是否正在运行且位于前台?
可能重复:
检查活动是否处于活动状态
如果活动正在显示,我想在屏幕上显示进度对话框.但是当活动窗口没有显示时,它将不会执行任何操作.请建议,如何检查我的活动是否显示?
我正在尝试使用Android实现以下功能:
当应用程序处于后台时,线程会立即轮询服务器以检索数据并通知用户新数据是否可用.我正在使用服务,很好.
当应用程序处于"活动"使用状态时,即其中一个活动可见时,轮询应该停止,因为它可能会干扰其他用户操作.
我不明白如何检测应用程序的"活动"或"背景"使用之间的转换.onResume()活动方法似乎没有帮助,因为无论如何,活动可以在"活动"使用期间隐藏或可见.我的理解是应用程序本身并没有区分两个状态.
按下HOME按钮时是否可以相关?还有另一种方法可以区分吗?
我在考虑相当于iPhone的app委托方法applicationDidEnterBackground.这是用Android思考的正确方法吗?或者我应该使用另一种方法?
谢谢.
我的问题类似于这个2岁的问题,我只是发布相同的问题来获得更新的答案,因为很多事情在两年内发生了变化.
我正在开发一个GingerBread +设备的应用程序,我有很多活动,在后台我收到服务器的一些数据.现在基于该数据在某些情况下我需要向Dialog用户显示一个.问题是我如何知道当前最活跃的活动?
我试过,
我曾试图给getApplicationContext()而Dialog创作,但是不工作.抛出一些例外.
一个办法 ?(我真的讨厌它),
一个解决方案可能是通过在Application类中使用变量并在onResume()每个活动上设置它来跟踪当前可见的活动.如果他们有更明智的方法来实现这一点,我真的不想做这本书,我相信他们是更明智的方法来实现这一目标,
我的简单问题是,
如何在当前可见活动上显示对话框?,所以我可以提供对AlertDialog.Builder的引用,我认为这将完成我的工作.如果不是我怎么能在最顶层的Activity上显示一个对话框?
编辑,我使用以下代码私有View.OnClickListener创建一个简单的对话框cancelClickListener = new OnClickListener(){
@Override
public void onClick(View v) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
LoginActivity.this);
// set title
alertDialogBuilder.setTitle("Roobroo will exit..");
// set dialog message
alertDialogBuilder
.setMessage("Are you sure you want to exit ?")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// if this button is clicked, close
// …Run Code Online (Sandbox Code Playgroud)