当前位置: 首页 > 知识库问答 >
问题:

onstart调用了两次,中间没有on飞往?

邢冷勋
2023-03-14

我有一个已经可见的活动(所以onstart已经运行),我拉下通知栏,点击与所述活动的挂起意图相关联的通知。1)调用了停顿。请注意,不调用onStation 2)创建一个新的活动实例,然后调用onstart等...

正如我建议的那样,我尝试了singleTask和singleInstance,但它们不会阻止在调用onPause后创建新实例。有趣的是,只有当活动可见且我单击其通知时,才会发生这种情况。如果已经停止,Android将使用旧实例。也许我需要调整Pending帐篷的生成方式。。。

共有1个答案

段干俊茂
2023-03-14

我认为在运行挂起的意图时,可能会在堆栈中创建一个新的活动。配置活动,使其不会通过设置为singleTask或singleInstance的launchMode创建新活动。

以下是我在活动中使用的设置示例:

<activity
            android:name="com.zakimak.HomeScreenActivity"
            android:screenOrientation="portrait"
            android:label="@string/app_name"
            android:launchMode="singleTask" />

然后,构建待定意图如下所示:

    Intent resultIntent = new Intent(context, HomeScreenActivity.class);
    // The request code 24601  uniquely identifies the notification generated 
    // by the application. As an application may generate several having        
    //different codes to identify each. CAUTION: It's value should be greater than 0 
    //.i.e. RESULT_FIRST_USER+

    PendingIntent resultPendingIntent = PendingIntent.getActivity(context,
            24601, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    Notification notification = new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.ic_launcher).setContentTitle("Title")
            .setContentText("Bla bla").setOngoing(true)
            .setTicker("Bla bla is running").setAutoCancel(false)
            .setContentIntent(resultPendingIntent).build();

步骤1:我启动应用程序并显示HomeScreenActive。然后我拖动通知栏并单击通知。它打开活动,并调用以下回调方法:onPance和onResume。调用onPance是因为活动仍然可以在抽屉下看到。

第二步:我启动应用程序并显示HomeScreenActive,然后按Home或启动另一个活动,然后调用onStation。然后我拖动通知栏并单击通知。它打开活动,并调用以下回调方法:onstart和onResume。

在这两种情况下,当第一次迭代启动活动时,onCreate只被调用一次。在模拟器上进行了测试。

在某些情况下,当你的设备负载过重或试图省电时,Android可能会终止这个过程。

 类似资料:
  • 我在android 4.0.3上遇到了一个问题(在4.1.2上运行良好)。我的活动中有一个广播接收器。当我发送广播时,方法onReceive()总是调用两次。请给我任何关于4.0和4.1广播接收器差异的建议

  • 问题内容: 我有使用JQuery..I米一个问题在我的代码发送字段名和序列号,其通过获取其数据的ctrller 和并且与序列表中没有given..And生成预览显示面板更新字段名与插入的字段..现在,我再次尝试更改字段名称。tat是现在,当我单击生成的显示面板字段时,相应的设置将打开,我将尝试立即更改字段名称 两者和都相同..在我发送的是字段名和序列号 在功能2中,我要发送相同的字段名和(但其他值

  • 问题内容: 如果我在节点中编写以下程序: 然后在服务器上单击两次,在服务器上看到两次- 我不确定为什么单个HTTP请求导致两次执行。 问题答案: 那是正常现象-您的浏览器拨打了多个电话。 例如,大多数浏览器都会呼叫来获取。 尝试记录网址: 然后您会看到正在调用的内容。

  • 在我的应用程序中,我将TextWatcher放在EditText上。当我更改EditText的文本时,TextWatcher的事件会被调用两次。 我正在使用模拟器来运行应用程序。

  • 问题内容: 我是angular js的新手,目前仍然遇到非常有线的bug。控制器中的函数在按路由加载视图调用时会运行两次。 http://jsfiddle.net/4gwG3/5/ 您将看到两次警报! 我的观点很简单 我的应用程序代码如下 问题答案: 首先检查您是否没有两次初始化Angular应用程序(通过使用 ng-app 自动进行初始化)。 一次,我有2个带有ng-app的html页面(一个用

  • 我正在开发一个应用程序使用Android4.0IC和碎片。 考虑ICS4.0.3(API level 15)API的演示示例应用程序中的修改示例: }