小编The*_*ant的帖子

Android应用在被杀时不会调用"onDestroy()"(ICS)

我正在开发一个使用蓝牙通信的Android应用程序(使用一个propetary协议),我需要抓住应用程序被杀的那一刻.

我想使用"onDestroy()"方法,但每次应用程序被杀死时都不会调用它.我注意到当我按下后退按钮时会调用它,有时只有当我从任务管理器中删除应用程序时才会调用它.

问题是:我怎样才能抓住应用程序被杀之前的那一刻?

这是我试图使用的代码:

@Override
public void onDestroy() {
    sendMessage(msg);
    Log.d("SampleApp", "destroy");
    super.onDestroy();
}

@Override
public void finish(){

    sendMessage(msg);
    Log.d("SampleApp", "finish");
    super.finish();
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,每次我从任务管理器关闭应用程序时都不会调用finish()并且不会调用onDestroy.

我怎么处理这个?

android ondestroy android-4.0-ice-cream-sandwich

21
推荐指数
3
解决办法
2万
查看次数

使用Doclava生成android项目javadoc时出错

我正在尝试使用javadoc和doclava生成我的android项目的文档.我下载了doclava jar,我正试图通过Project-> generate javadoc生成doc.

如果我理解了这个机制,我有两种方法可以告诉javadoc使用doclava doclet:

1)使用以下选项选择"使用自定义doclet":

Doclet名称:com.google.doclava.Doclava
Doclet路径:/full/path/of/my/doclava/dir/doclava-1.0.6.jar

2)选择"使用标准doclet",然后在"javadoc选项"中输入:

-doclet com.google.doclava.Doclava
-docletpath $ {/ full/path/of/my/doclava/dir/doclava-1.0.6.jar}

我遇到过这些问题:

  • 如果我使用第一种方法,我可以成功生成doc但似乎没有识别android类.doclava解析"import android.util.SparseArray"时出错

  • 如果我使用第二种方法,我会收到此错误:"javadoc:error - 找不到doclet类com.google.doclava.Doclava 1错误"

事实上:如果我不使用Doclava,我的文档是通过android apis的链接正确生成的.

我只是想创建我的项目javadoc与链接到android/java doc(对于android/java对象)并具有"android外观和感觉".

android javadoc doclet

5
推荐指数
1
解决办法
2419
查看次数

inputStream.read()导致NullPointerException(在检查inputStream之后!= null)

我正在编写一个需要与蓝牙2.1设备交换数据的应用程序.我已经做了好几次了,但这次发生了一些奇怪的事情.

    Log.d("TAG", "connectToDevice");

    if(macAddress != null)
        deviceToConnect = mBluetoothAdapter.getRemoteDevice(macAddress);

    Log.d("TAG", "macAddress != null");


    if(deviceToConnect != null)
        try {
            btSocket = deviceToConnect.createRfcommSocketToServiceRecord(UUID.fromString(SharedIncludes.SPP_UUID));
        } catch (IOException e) {
            btSocket = null;
            e.printStackTrace();
        }

    Log.d("TAG", "deviceToConnect != null");

    if(btSocket != null){

        try {
            inputStream = btSocket.getInputStream();
            Log.d("TAG", "inputStream OK");

        } catch (IOException e) {
            inputStream = null;
            Log.d("TAG", "inputStream KO");
            e.printStackTrace();
        }

        try {
            outputStream =  btSocket.getOutputStream();
            Log.d("TAG", "outputStream OK");

        } catch (IOException e) {
            outputStream = null;
            Log.d("TAG", "outputStream KO");
            e.printStackTrace();
        } …
Run Code Online (Sandbox Code Playgroud)

android bluetooth inputstream nullpointerexception

5
推荐指数
1
解决办法
7718
查看次数