GVKun编程网logo

java – Android:当我从最近的应用程序按钮关闭应用程序时,不会调用OnDestroy

2

在这篇文章中,我们将带领您了解java–Android:当我从最近的应用程序按钮关闭应用程序时,不会调用OnDestroy的全貌,同时,我们还将为您介绍有关Android-致命异常:由Percel.j

在这篇文章中,我们将带领您了解java – Android:当我从最近的应用程序按钮关闭应用程序时,不会调用OnDestroy的全貌,同时,我们还将为您介绍有关Android - 致命异常:由 Percel.java 上的 java.lang.SecurityException 引起的 java.lang.RuntimeException、Android N 将从专属 Java API 转向 OpenJDK,openjdk 是用 java 开发的吗?还是用 java 来开发 app 吗?、Android SDK Android NDK Android Studio 官方下载地址、Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long的知识,以帮助您更好地理解这个主题。

本文目录一览:

java – Android:当我从最近的应用程序按钮关闭应用程序时,不会调用OnDestroy

java – Android:当我从最近的应用程序按钮关闭应用程序时,不会调用OnDestroy

当我们按下这个按钮

我们看到我们没有关闭的应用,就像这样


但是当我们想要从这个屏幕关闭一个应用程序(图片下方)时,不会调用onDestroy()方法,但应用程序已关闭.当应用程序以这种方式关闭时,我需要调用onDestroy().我怎么能这样做?

解决方法:

如Android文档中所述,无法保证在退出应用程序时将调用onDestroy().

“There are situations where the system will simply kill the activity’s hosting process without calling this method”

https://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29

相反,您可以创建一个服务,当您的活动在其中运行的任务被销毁时将通知该服务.

创建服务类:

public class ClosingService extends Service {

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onTaskRemoved(Intent rootIntent) {
        super.onTaskRemoved(rootIntent);

        // Handle application closing
        fireClosingNotification();

        // Destroy the service
        stopSelf();
    }
}

在清单中声明/注册您的服务(在应用程序标记内,但在任何活动标记之外):

<service android:name=".services.ClosingService"
             android:stopWithTask="false"/>

指定stopWithTask =“false”将导致在从Process中删除任务时在服务中触发onTaskRemoved()方法.

在这里,您可以在调用stopSelf()以销毁服务之前运行关闭应用程序逻辑.

Android - 致命异常:由 Percel.java 上的 java.lang.SecurityException 引起的 java.lang.RuntimeException

Android - 致命异常:由 Percel.java 上的 java.lang.SecurityException 引起的 java.lang.RuntimeException

如何解决Android - 致命异常:由 Percel.java 上的 java.lang.SecurityException 引起的 java.lang.RuntimeException

我收到了很多崩溃报告,如下所示:

Fatal Exception: java.lang.RuntimeException caused by java.lang.SecurityException

堆栈跟踪:

  1. Caused by java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/file from pid=28628,uid=10263 requires android.permission.READ_EXTERNAL_STORAGE,or grantUriPermission()
  2. at android.os.Parcel.createException(Parcel.java:1966)
  3. at android.os.Parcel.readException(Parcel.java:1934)
  4. at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
  5. at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
  6. at android.content.ContentProviderProxy.query(ContentProviderProxy.java:418)
  7. at android.content.ContentResolver.query(ContentResolver.java:809)
  8. at android.content.ContentResolver.query(ContentResolver.java:759)
  9. at android.content.CursorLoader.loadInBackground(CursorLoader.java:68)
  10. at android.content.CursorLoader.loadInBackground(CursorLoader.java:45)
  11. at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:319)
  12. at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:73)
  13. at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:61)
  14. at android.os.AsyncTask$2.call(AsyncTask.java:333)
  15. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  16. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
  17. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
  18. at java.lang.Thread.run(Thread.java:764)

我已经声明了清单文件的 WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE 权限,并在运行时从用户那里获得了权限。我还缺少什么?

注意:任务异步运行。

解决方法

在读取外部存储之前,您需要将 android.permission.READ_EXTERNAL_STORAGE 添加到您的 android 清单文件或请求用户许可 (READ_EXTERNAL_STORAGE)。

Android N 将从专属 Java API 转向 OpenJDK,openjdk 是用 java 开发的吗?还是用 java 来开发 app 吗?

Android N 将从专属 Java API 转向 OpenJDK,openjdk 是用 java 开发的吗?还是用 java 来开发 app 吗?

Android N 将从专属 Java API 转向 OpenJDK,openjdk 是用 java 开发的吗?还是用 java 来开发 app 吗?

Android SDK Android NDK Android Studio 官方下载地址

Android SDK Android NDK Android Studio 官方下载地址

 如果下载速度很慢或者无法下载,有三种解决方法

1. 忍耐.

2. 使用 P2SP 下载工具,比如迅雷,百度云离线.

3. 你们懂得.

无法在线升级请看下边

sudo vi /etc/hosts

添加

74.125.206.93 dl-ssl.google.com

2014.7

ADT Bundle 
http://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
http://dl.google.com/android/adt/adt-bundle-mac-x86_64-20140702.zip
http://dl.google.com/android/adt/adt-bundle-linux-x86-20140702.zip
http://dl.google.com/android/adt/adt-bundle-linux-x86_64-20140702.zip

SDK Tools Only
http://dl.google.com/android/android-sdk_r23.0.2-windows.zip
http://dl.google.com/android/installer_r23.0.2-windows.exe
http://dl.google.com/android/android-sdk_r23.0.2-macosx.zip
http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz

Android Studio
http://dl.google.com/android/studio/install/0.8.6/android-studio-bundle-135.1339820-windows.exe
http://dl.google.com/android/studio/install/0.8.6/android-studio-bundle-135.1339820-mac.dmg
http://dl.google.com/android/studio/install/0.8.6/android-studio-bundle-135.1339820-linux.tgz

Android NDK
http://dl.google.com/android/ndk/android-ndk32-r10-windows-x86.zip
http://dl.google.com/android/ndk/android-ndk32-r10-windows-x86_64.zip
http://dl.google.com/android/ndk/android-ndk32-r10-darwin-x86.tar.bz2
http://dl.google.com/android/ndk/android-ndk32-r10-darwin-x86_64.tar.bz2
http://dl.google.com/android/ndk/android-ndk32-r10-linux-x86.tar.bz2
http://dl.google.com/android/ndk/android-ndk32-r10-linux-x86_64.tar.bz2
http://dl.google.com/android/ndk/android-ndk64-r10-windows-x86.zip
http://dl.google.com/android/ndk/android-ndk64-r10-windows-x86_64.zip
http://dl.google.com/android/ndk/android-ndk64-r10-darwin-x86.tar.bz2
http://dl.google.com/android/ndk/android-ndk64-r10-darwin-x86_64.tar.bz2
http://dl.google.com/android/ndk/android-ndk64-r10-linux-x86.tar.bz2
http://dl.google.com/android/ndk/android-ndk64-r10-linux-x86_64.tar.bz2
http://dl.google.com/android/ndk/android-ndk-r10-cxx-stl-libs-with-debug-info.zip

 

 

2014.6 

Android Studio 0.8

http://dl.google.com/android/studio/install/0.8.0/android-studio-bundle-135.1245622-windows.exe
http://dl.google.com/android/studio/install/0.8.0/android-studio-bundle-135.1245622-mac.dmg
http://dl.google.com/android/studio/install/0.8.0/android-studio-bundle-135.1245622-linux.tgz

Android SDK only r23

http://dl.google.com/android/android-sdk_r23-windows.zip
http://dl.google.com/android/installer_r23-windows.exe
http://dl.google.com/android/android-sdk_r23-macosx.zip
http://dl.google.com/android/android-sdk_r23-linux.tgz

 ADT Bundle r23

http://dl.google.com/android/adt/adt-bundle-linux-x86_64-20140624.zip
http://dl.google.com/android/adt/adt-bundle-linux-x86-20140624.zip
http://dl.google.com/android/adt/adt-bundle-windows-x86-20140624.zip
http://dl.google.com/android/adt/adt-bundle-windows-x86-20140624.zip
http://dl.google.com/android/adt/adt-bundle-mac-x86_64-20140624.zip

Android NDK r9d

http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86.zip
http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86_64.zip
http://dl.google.com/android/ndk/android-ndk-r9d-darwin-x86.tar.bz2
http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86.tar.bz2
http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2
http://dl.google.com/android/ndk/android-ndk-r9d-cxx-stl-libs-with-debug-info.zip

 

Android NDK r6b

Windows

http://dl.google.com/android/ndk/android-ndk-r6b-windows.zip

Mac OS X(intel)

http://dl.google.com/android/ndk/android-ndk-r6b-darwin-x86.tar.bz2

Linux

http://dl.google.com/android/ndk/android-ndk-r6b-linux-x86.tar.bz2

 

Android SDK 3.2

Windows

http://dl.google.com/android/android-sdk_r12-windows.zip

http://dl.google.com/android/installer_r12-windows.exe

Mac OS X (intel)

http://dl.google.com/android/android-sdk_r12-mac_x86.zip

Linux(i386)

http://dl.google.com/android/android-sdk_r12-linux_x86.tgz

 

Android NDK r6

Windows

http://dl.google.com/android/ndk/android-ndk-r6-windows.zip

Mac OS X(intel)

http://dl.google.com/android/ndk/android-ndk-r6-darwin-x86.tar.bz2

Linux 32/64-bit (x86)

http://dl.google.com/android/ndk/android-ndk-r6-linux-x86.tar.bz2

 

Android SDK 3.1

Windows

http://dl.google.com/android/android-sdk_r11-windows.zip

http://dl.google.com/android/installer_r11-windows.exe

Mac OS X(intel)

http://dl.google.com/android/android-sdk_r11-mac_x86.zip

Linux(i386)

http://dl.google.com/android/android-sdk_r11-linux_x86.tgz

 

Android NDK r5b

Windows

http://dl.google.com/android/ndk/android-ndk-r5b-windows.zip

Mac OS X(intel)

http://dl.google.com/android/ndk/android-ndk-r5b-darwin-x86.tar.bz2

Linux

http://dl.google.com/android/ndk/android-ndk-r5b-linux-x86.tar.bz2

 

Android SDK 3.0

Windows

http://dl.google.com/android/installer_r10-windows.exe

http://dl.google.com/android/android-sdk_r10-windows.zip

Mac OS X(intel)

http://dl.google.com/android/android-sdk_r10-mac_x86.zip

Linux(i386)

http://dl.google.com/android/android-sdk_r10-linux_x86.tgz

 

Android SDK 2.3

Windows

http://dl.google.com/android/android-sdk_r08-windows.zip

http://dl.google.com/android/installer_r08-windows.exe

Linux (i386)

http://dl.google.com/android/android-sdk_r08-linux_86.tgz

MAC OS X (intel)

http://dl.google.com/android/android-sdk_r08-mac_86.zip

 

Android NDK r5

Windows

http://dl.google.com/android/ndk/android-ndk-r5-windows.zip

Mac OS X (intel) r5

http://dl.google.com/android/ndk/android-ndk-r5-darwin-x86.tar.bz2

Linux 32/64-bit (x86) r5

http://dl.google.com/android/ndk/android-ndk-r5-linux-x86.tar.bz2


Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long

Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long

如何解决Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long

我不断收到此错误消息

java.lang.classCastException: java.lang.String 不能转换为 java.lang.Long

我正在尝试使用共享首选项在活动之间传递一个长值,这是我的第一个活动的代码

  1. SharedPreferences sp = getApplicationContext().getSharedPreferences("userdata",Context.MODE_PRIVATE);
  2. Calendar cal = Calendar.getInstance();
  3. SharedPreferences.Editor editor = sp.edit();
  4. editor.putLong("time"+i,cal.getTimeInMillis());
  5. editor.commit();

这是我的第二个活动的代码。

  1. ArrayList<Long> time = new ArrayList<Long>();
  2. sp = getSharedPreferences("userdata",Context.MODE_PRIVATE);
  3. time.add(sp.getLong("time"+i,0)); // here is where the error occurs

“time”末尾的 +i 的原因是这些 put 和 receive 消息在 for 循环中运行,因为有多个 long 正在传递并且顺序很重要。请告诉我是否还有其他方法可以执行此操作或如何解决此异常。

谢谢

我们今天的关于java – Android:当我从最近的应用程序按钮关闭应用程序时,不会调用OnDestroy的分享就到这里,谢谢您的阅读,如果想了解更多关于Android - 致命异常:由 Percel.java 上的 java.lang.SecurityException 引起的 java.lang.RuntimeException、Android N 将从专属 Java API 转向 OpenJDK,openjdk 是用 java 开发的吗?还是用 java 来开发 app 吗?、Android SDK Android NDK Android Studio 官方下载地址、Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long的相关信息,可以在本站进行搜索。

本文标签: