为什么我的应用程序在模拟器上正常运行但在手机上失败?

时间:2014-04-25 15:16:26

标签: android

我开发了一个提供BroadcastReceiver消息的应用程序。

代码是

package com.example.myapp;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class Receiver extends BroadcastReceiver {
    public static final String TAG = "Receiver Tutorial";
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action != null && Intent.ACTION_SCREEN_ON.equals(action)) {
            Toast.makeText(context, "Screen is turned ON", Toast.LENGTH_LONG).show();
        }
    }
}

该应用在模拟器中正常运行并提供Toast通知。 但是,当我试图在我的手机上运行它时,它不会给任何Toast通知。 我正在使用Galaxy Y Duos手机。 我无法弄清楚问题。

1 个答案:

答案 0 :(得分:0)

在可以显示toast之前,BroadcastReceiver被终止。由于接收器的过程终止,烤面包将永远不会出现。要进行吐司,您需要启动Service以确保在BroadcastReceiver的代码完成后仍然会有应用程序进行祝词。

查看BroadcastReceiver JavaDoc

中标有“接收器生命周期”的部分