2015-09-06 2 views
4

Моя проблема в том, что, когда push происходит из службы разбора, иногда приложение открывается автоматически, как если бы я нажал на уведомление из панели уведомлений. Возможно, кто-то уже сталкивался с подобной проблемой?Android, Push-уведомление с использованием parse.com автоматически запускает приложение

Это мой CustomReseiver:

public class CustomPushReceiver extends ParsePushBroadcastReceiver { 
private final String TAG = CustomPushReceiver.class.getSimpleName(); 


private Intent parseIntent; 

public CustomPushReceiver() { 
    super(); 
} 

@Override 
protected void onPushReceive(Context context, Intent intent) { 
    super.onPushReceive(context, intent); 

    if (intent == null) 
     return; 

    try { 
     JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data")); 
     Log.e(Constans.LOG_TAG, "Push received: " + json); 
     parseIntent = intent; 
     // Toast.makeText(ParseApplication.get(), json.getString("alert"), Toast.LENGTH_SHORT).show(); 
     if(ProfileBriefsFragment.profileBriefsContext instanceof Profile_SideBar_Activity){ 
      ((Profile_SideBar_Activity)ProfileBriefsFragment.profileBriefsContext).pushReceived(json); 
     } 
     CurrentUser.getInstance().setHaveNewNotidication(true); 
     Notification_center_Activity.updateNotifications(); 
    } catch (JSONException e) { 
     Log.e(TAG, "Push message json exception: " + e.getMessage()); 
    } 
} 

@Override 
protected void onPushDismiss(Context context, Intent intent) { 
    super.onPushDismiss(context, intent); 
} 

@Override 
public void onPushOpen(Context context, Intent intent) { 
    Intent i = new Intent(context, NewHomeActivity.class); 
    i.putExtras(intent.getExtras()); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(i); 
} 
public interface OnPushReceived{ 
    void pushReceived(JSONObject json); 
}} 

ответ

1

Попробуйте

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) { 
      // Initialize Parse 
      Parse.initialize(this, "your id from parse"); 


      ParseInstallation.getCurrentInstallation().saveInBackground(); 
      Parse.setLogLevel(Parse.LOG_LEVEL_INFO); 

     } 


    PushService.setDefaultPushCallback(this, MainActivity.class, R.drawable.ic_notification); 

С setDefaultPushCallback только тогда, когда что вы нажимаете на MainActivity уведомления Открыл.

Надеюсь, полезно.

+0

Спасибо, но теперь он не открывается, когда я нажимаю уведомление, только если приложение открыто в фоновом режиме. – Webdma

+0

Хорошо, я удалил эту строку «Parse.setLogLevel (Parse.LOG_LEVEL_INFO);», и теперь это похоже на правильную работу, я продолжу тестирование, спасибо. – Webdma

+0

Ваш прием, удача –

Смежные вопросы