我的通知可以正确显示,但它会在每次通知时显示我的应用程序意外停止。
这是我的service.class代码
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
public class CheckService extends Service{
@Override
public void onCreate() {
}
@Override
public IBinder onBind(Intent intnet) {
return null;
}
@Override
public void onDestroy() {
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
Check();
return Service.START_NOT_STICKY; //End of service if memory is not enough
}
public void Check()
{
NotificationManager mgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification n = new Notification(R.drawable.launcher, "Notification", System.currentTimeMillis());
String title = "Title";
String msg = "info";
Intent intent = new Intent(this, main.class);
n.setLatestEventInfo(this, title, msg, PendingIntent.getActivity(this, 1, intent, 0));
n.defaults = Notification.DEFAULT_ALL;
n.flags = Notification.FLAG_AUTO_CANCEL;
mgr.notify(R.id.notification, n); //comment out
}
}
为排除其他异常机会,我在应用程序启动时启动了该服务。 该类在清单中定义如下:
<service android:process=":service"
android:name="CheckService"
android:icon="@drawable/launcher"
android:label="@string/app_name"/>
我无法显示logcat信息,因为它在我的调试机和模拟器上运行完美,但在安装了已签名apk的其他设备上运行时却没有。我在我的调试机上安装了apk,没有发现问题。这也是调试困难的原因。
我试图评论出“mgr.notify(R.id.notification,n);”然后它不显示通知,也没有意外停止对话。
你们中有谁有想法或经验吗?感谢。