2016-05-17 17 views
0

私はすでにバーで通知をクリアしているにもかかわらず、アプリケーションを再オープンするたびに同じプッシュ通知が表示され続けます。アプリケーションが閉じられているにもかかわらず、自分のアプリケーションが通知を受け取れるようにサービスを実装する方法。私のアプリを開くたびにプッシュ通知が表示され続ける

@Override 
public IBinder onBind(Intent intent) { 
return null; 
} 


@Override 

public int onStartCommand(Intent intent, int flags, int startId) { 

SharedPreferences sharedPreferences = getSharedPreferences(Constants.SHARED_PREF, MODE_PRIVATE); 


String id = sharedPreferences.getString(Constants.UNIQUE_ID, null); 


Firebase firebase = new Firebase(Constants.FIREBASE_APP + id); 



firebase.addValueEventListener(new ValueEventListener() { 


    @Override 
    public void onDataChange(DataSnapshot snapshot) { 

     String msg = snapshot.child("msg").getValue().toString(); 


     if (msg.equals("none")) 
      return; 

     showNotification(msg); 
    } 

    @Override 
    public void onCancelled(FirebaseError firebaseError) { 
     Log.e("The read failed: ", firebaseError.getMessage()); 
    } 
}); 

return START_STICKY; 
} 


private void showNotification(String msg){ 
NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
builder.setSmallIcon(R.mipmap.ic_launcher); 
Intent intent = new Intent(NotificationListener.this,ViewRecord.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); 
builder.setContentIntent(pendingIntent); 
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
builder.setSound(alarmSound); 
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)); 
builder.setContentTitle("Notifier"); 
builder.setContentText(msg); 
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
builder.setAutoCancel(true); 
notificationManager.notify(1, builder.build()); 
} 

私のサービスコードは以下のとおりです。そして、私は第一の活動でのonCreate機能のサービス..

public class MyService extends Service { 
public MyService() { 
} 

@Override 
public IBinder onBind(Intent intent) { 
    // TODO: Return the communication channel to the service. 
    throw new UnsupportedOperationException("Not yet implemented"); 
} 

@Override 
public void onCreate() { 
    Toast.makeText(this, "The new Service was Created", Toast.LENGTH_LONG).show(); 

} 

@Override 
public void onStart(Intent intent, int startId) { 
    // For time consuming an long tasks you can launch a new thread here... 
    Toast.makeText(this, " Service Started", Toast.LENGTH_LONG).show(); 

} 
} 
+0

サービスを開始したのか、それともサービスに縛られただけでしたか? – Masum

+0

@Masum私のサービスコーディングをチェックアウトしました。私はちょうど追加しました....私のサービスコーディングは正しいですか? –

+0

@Masumこんにちは –

答えて

1

オーバーライドonStartCommand()メソッドを呼び出した後、START_STICKYを返します。コメント内のコードは、それが非構造化 isServiceStarted

public class MainActivity extends AppCompatActivity { 
private SharedPreferences servicePref; 
private boolean isServiceStarted; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    servicePref = getSharedPreferences("servicePref", MODE_PRIVATE); 
    isServiceStarted = servicePref.getBoolean("isServiceStarted", false); 

    if (!isServiceStarted) { 
     startService(new Intent(this, MyService.class)); 
     servicePref.edit().putBoolean("isServiceStarted",true).apply(); 
    } 
} 

とonStopメソッド内UR MyService.classで

を見えるようWUDので、答えとしてこれを投稿

+0

私はonStartCommand()がすでに上のコーディングに示されているようにオーバーライドしたと思いますか? –

+0

これには返信START_STICKY –

1

失敗せずにこれを行います。

public class MyService extends Service { 
    @Nullable 
    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     // save value as false when service gets destroyed so as to start again when u open the app 
     getSharedPreferences("servicePref", MODE_PRIVATE).edit().putBoolean("isServiceStarted",false).apply(); 
    } 
} 
+0

thxが含まれていますが、サービスが停止しても、アプリが終了しても自分のアプリに通知が届きますか? –

+0

はブロードキャストレシーバで処理されますので、アプリケーションが実行されていなくても、ブロードキャストレシーバはonReceiveメソッドで言及されている必要なアクションブロードキャストと実行コードを受け取ります。 –

+0

もう一度私は放送受信機にあなたの助けが必要です、もう一度私を助けることができますか?あなたの助けが必要です....多くのご協力ありがとうございました –

関連する問題