问题标签 [android-application-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
883 浏览

java - java.lang.ClassCastException 当我尝试将 Application 从 Fragment 转换为 MyApplication 时(Android 6+)

我有一个扩展android.app.Fragment的片段。在某些情况下,在 onCreateView 中,当我尝试将 Application 转换为我的 Application 实现时,我有java.lang.ClassCastException 。

实际上,仅在Android 6中,我在 <5% 的所有用户中都有此错误(我的 Crashlytics 日志说)。我的 Crashlytics 日志如下:

致命异常:java.lang.ClassCastException:android.app.Application 无法转换为 com.example.app.MyApplication

我的清单文件中的应用程序部分:

<应用程序 android:name=" .MyApplication " android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="..." android:largeHeap="true" android:supportsRtl="true" android:theme="@style/AppTheme" > </application >

提前致谢!

0 投票
1 回答
34 浏览

android - 停止执行意图 - 在应用程序子类中

在某些情况下,我的应用程序通过调用我的Broadcast-ReceiversServices(等)之一启动,但我想阻止用于启动意图的组件。

为什么:因为我需要在任何组件启动之前做一些事先的初始化工作。但是这项工作可能是一项长期运行的事情,因此我不能只在主线程上的应用程序子类中执行它。

Application在我的应用程序中子类化。因此,我的方法是在onCreate()我的应用程序子类中以某种方式干预意图,而是启动我的特定服务,该服务运行预先初始化并重新调用意图,之后故意使用该服务。

你能想象任何可能完成这件事吗?谢谢!

Ps.:我有很多组件可以启动我的应用程序。我不想在每个组件中都包含我的条件代码。

0 投票
1 回答
3175 浏览

android - 服务不会在应用程序类开始的片段中停止

我正在开发一个翻译应用程序,出于某些原因,我想在应用程序类中启动一些服务。我创建了一个扩展应用程序的“MyApplication”类:

你看到我用这行代码启动 ClipboardService:

由于其他一些原因,我想在我的一个片段中停止此服务,称为“SettingFragment”:

你看到我用这行代码停止服务:

但是当我运行我的程序时,服务不会停止。我很困惑发生了什么,为什么我的服务没有停止。我在某些方面犯了错误吗?此致...

0 投票
1 回答
761 浏览

android - 在 AndroidManifest 中添加多个应用程序类

我的 android 应用需要添加 multiDexApplication 支持。但现在我需要添加另一个自定义应用程序类。我怎样才能做到这一点?

//这是我的清单代码:

//如何将我的 .myApp 应用程序类添加到此?

0 投票
2 回答
503 浏览

android - Android - 服务还是 IntentService?

我有一个应用程序在打开启动设备时运行某些“长时间”进程。

该进程通过下载管理器执行一定数量的下载,当进程完成时,它会向应用程序发送一个广播事件,以捕获一些分析。

据我了解,每当调用引导广播事件时,都会Application实例化该类(如果尚未在内存中)。

Application当用户打开应用程序时,也会启动类。

基于此,运行进程的代码被放置在类onCreate的方法中Application。(进程从那里开始一个新线程)

但是,似乎“长”进程花费的时间超过了启动广播接收器的生存时间(大约 10 秒?),因此应用程序进程被终止。然后几秒钟后,在下载完成后,发送了第二个广播,并且应用程序再次开始再次调用Application.onCreate,但产生了一些不良影响。

该进程预计将以单一线性方式运行,并且不会再次调用onCreate

由于这个过程只发生一次,我正在考虑创建一个Service给应用程序更多的时间来保持活力。但是该过程取决于 DownloadManager 所以:

1)使用IntentService将不起作用(据我所知),因为该过程在handleIntent返回后仍然被杀死。该进程创建新线程,因此其任务是异步的,并且handleIntent方法将在整个进程完成之前返回。

2)我应该创建一个Service简单地“活着”一段时间然后在进程完成后停止的吗?

3)作为一个额外的问题,如果我有一个 running ServiceApplication类会被实例化并保存在内存中,直到服务停止?

0 投票
1 回答
118 浏览

android - Android gridview onItemClickListener 设置activity背景图片

我几乎被我的android应用程序困住了......我正在尝试用图像制作一个gridview

在此处输入图像描述

并使用 OnItemClickListener() 将图像设置为背景。我遇到的问题是......当我将图像设置为背景时,它会在活动关闭时消失。

我希望用户通过从 gridview 中选择来设置背景图像,而不会在用户退出活动时消失。

///////////我的代码/////////////////

//////活动.........../////////

0 投票
1 回答
238 浏览

java - 将 Android 应用程序转换为 android 库会出现错误:需要常量表达式

我有一个 Android 应用程序,我希望将其转换为库以在另一个应用程序中使用。我已更改com.android.applicationcom.android.librarygradle 文件中的应用插件部分。删除了应用程序 ID。在库的 Launcher 应用程序中删除了 Launcher 意图。但是当我构建这个项目时,我得到了几个需要常量表达式的错误,比如 in R.id.imageButton

其他一些帖子表明,在需要“常量”的 switch case 中使用了 id。因此,一种解决方法可能是用 if-else 结构替换 switch case。但这是唯一的方法吗?另外,如果是的话,既然我将项目切换到库而不是应用程序,为什么不将 id 视为常量?

0 投票
1 回答
789 浏览

java - 最近调用了Android应用程序类方法onCreate

我已经重载了Application class in my android app and i'm usingIAviaryClientCredentials 接口。

问题:

  • 案例 1:当我从 studio 2.1.1 运行代码时,应用程序运行良好

  • 案例2:当我到Application Classclear-app-data大约需要2 分钟。onCreate()

  • 案例3:当有人第一次使用apk并安装/运行应用程序时,大约需要2分钟才能进入onCreate()应用程序类,之后它就可以正常工作了。

操作系统版本 6.0


更新 1

我的毕业文件。

更新 2

我在 V4 库的配置中发现了一些麻烦,但我设法摆脱了它。:D

成功生成apk:

之后在 AppypieApplication.java 上崩溃了

日志猫:

AppypieApplication.java的代码:

任何建议和帮助将不胜感激。

0 投票
1 回答
127 浏览

android - 我可以向用户显示应用程序类的物理布局吗?

我读到当我的用户打开我的应用程序时,首先运行扩展应用程序的类。所以我试图给我的应用程序类一个布局,所以它可能看起来像一个闪屏。但是setContentView()没有在扩展应用程序的类上工作,有没有办法做到这一点?

0 投票
1 回答
469 浏览

android - 删除数据库后未调用 ContentProvider 的 onCreate

我创建了 ContentProvider,它在应用程序启动时创建了一个数据库。

现在在该应用程序中,当用户从应用程序注销时,我正在执行删除数据库的过程。

之后,当我再次登录时,ContentProvider 无法调用覆盖类的onCreate()

有没有办法使用 ContentProvider 重新创建数据库?