2015-09-25 239 views
0

我正在创建一个android应用程序,当GCM向我的应用程序发送消息时,我想显示总的新通知数量。我希望它出现在我的通知图标上,如Facebook或Myntra(所有更新)。我的通知图标位于标签布局中。那么,如何才能更改或制作标记(或任何东西),以显示有新通知?如何使用GCM在我的通知图标上显示通知总数

+0

你将不得不增加数(提示使用SharedPref。为获得前一消息计数)特定通知的ID。一旦用户点击该通知。清除通知计数(SharedPref。) –

回答

1

你可以试试以下,

public class BadgeNumberExample extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_badge_number_example); 
     setBadge(this,5); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.badge_number_example, menu); 
     return true; 
    } 

    public static void setBadge(Context context, int count) { 
     String launcherClassName = getLauncherClassName(context); 
     if (launcherClassName == null) { 
      return; 
     } 
     Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE"); 
     intent.putExtra("badge_count", count); 
     intent.putExtra("badge_count_package_name", context.getPackageName()); 
     intent.putExtra("badge_count_class_name", launcherClassName); 
     context.sendBroadcast(intent); 
    } 

    public static String getLauncherClassName(Context context) { 

     PackageManager pm = context.getPackageManager(); 

     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_LAUNCHER); 

     List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0); 
     for (ResolveInfo resolveInfo : resolveInfos) { 
      String pkgName = resolveInfo.activityInfo.applicationInfo.packageName; 
      if (pkgName.equalsIgnoreCase(context.getPackageName())) { 
       String className = resolveInfo.activityInfo.name; 
       return className; 
      } 
     } 
     return null; 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

可以请你告诉我你是如何取得这从gcm我的意思是你使用服务或什么,你可以请显示gcm代码使用? –