关闭我的应用时出现错误通知

时间:2015-03-10 03:26:51

标签: java android service notifications

我正在做一个将在2周后通知用户的应用程序。但我把计时器设置为2分钟,所以我可以测试我的应用程序是否会通知用户。我的问题是当我打开通知并关闭我的应用程序。我将在2分钟内收到错误没有通知但是当我的应用程序运行时,通知工作正常。在logcat中,我的错误在Bundle showData = i.getExtras();我认为问题是当我关闭我的应用程序时,Bundle passData变为null?

PhoneInformation.java

case R.id.bTurnOn:  

        Bundle passData = new Bundle();
        Intent intent = new Intent(PhoneInformation.this,NotificationService.class);
        passData.putInt("keyid", rowId);
        intent.putExtras(passData);
        startService(intent);
        break;

NotificationService.java

public class NotificationService extends Service{

int rowId;
private Timer timer = new Timer();

@Override
public IBinder onBind(Intent arg0) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
    Toast.makeText(this, "OnCreate()", Toast.LENGTH_SHORT).show();

}
@Override
public void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    Toast.makeText(this, "OnDestroy()", Toast.LENGTH_SHORT).show();

}

@Override
@Deprecated
public void onStart(final Intent i, int startId) {
    // TODO Auto-generated method stub
    super.onStart(i, startId);
    final Handler handler = new Handler();
    Timer timer;
    TimerTask timertask = new TimerTask() {
        @Override
        public void run() {
            handler.post(new Runnable() {
                @SuppressWarnings("deprecation")
                public void run() {

    Bundle showData = i.getExtras();
    rowId = showData.getInt("keyid");
    Bundle passData = new Bundle();
    NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    Intent notificationIntent = new Intent(NotificationService.this,SMSPhoneMessage.class);
    passData.putInt("keyid", rowId);
    notificationIntent.putExtras(passData);
    PendingIntent pendingIntent = PendingIntent.getActivity(NotificationService.this, 0, notificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
    Notification notification = new Notification(R.drawable.ic_launcher, "New Message", System.currentTimeMillis());
    notification.setLatestEventInfo(NotificationService.this, "New Message", "Please come to me immediately", pendingIntent);
    nm.notify(123, notification);
                }
            });
        }
    };
    timer = new Timer();
timer.schedule(timertask, 10000); 
}   
}

0 个答案:

没有答案