Android Notification의 간단한 응용 프로그램
3778 단어 Notification 사용자 정의
MainActivity.java
4
public class MainActivity extends Activity {
final int NOTIFICATION_ID=1;
NotificationManager nm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
}
public void send(View view){
Intent intent = new Intent(MainActivity.this,NextActivity.class);
//PendingIntent Intent,
PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
Builder builder = new Notification.Builder(MainActivity.this);
// ,
Notification notification = builder.setAutoCancel(true)
//
.setTicker(" ")
//
.setSmallIcon(R.drawable.ic_launcher)
//
.setContentTitle(" ")
//
.setContentText(" 。。。。。。。。。。。。")
// , LED
.setDefaults(Notification.DEFAULT_SOUND|Notification.DEFAULT_LIGHTS)
// Intent
.setContentIntent(pi)
.build();
// ,
nm.notify(NOTIFICATION_ID, notification);
}
public void cancel(View view){
// ID
nm.cancel(NOTIFICATION_ID);
}
}
기본 설정을 사용하지 않으려면 아래 코드를 사용하십시오 //
setSound((Uri.parse("file:///sdcard/click.mp3")));
//
setVibrate(new long[]{0,50,100,150});
효과도:
궁금한 거 있으신가요?AlertDialog.Builder는 왜 내부 클래스에 쓰입니까?이것은 건설자 모델이다(하나의 복잡한 구축을 표현과 분리시켜 같은 구축 과정에 서로 다른 표현을 만들 수 있게 한다. 백화문: 하나의 대상과 이 대상을 어떻게 구축하는지를 분리하는 것이다. 만약에 당신이 대상을 구축하고자 한다면 이 소식을 구축자에게 알려주고 이 대상에 대한 여러 가지 요구를 건설자에게 알려주고 건설자가이런 요구들을 부추긴 후에 당신이 필요로 하는 대상이 나온다.)더욱 간단하게 말하면 대상의 표시는 비교적 깨끗하고 번거로운 창설 과정을 다른 사람에게 해준다.
알림 표시줄 사용자 정의
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void btn(View view) {
// ,
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// Android3.0 NotificationCompat Notification
NotificationCompat.Builder builder = new NotificationCompat.Builder(
this);
RemoteViews rv = new RemoteViews(getPackageName(), R.layout.layout_buju);
rv.setTextViewText(R.id.tv1, " ");
rv.setTextViewText(R.id.tv2, " -----------");
rv.setImageViewResource(R.id.img, R.drawable.ic_launcher);
//
builder.setContent(rv);
// : 、 、
builder.setSmallIcon(R.drawable.ic_launcher).setTicker(" ").setContentTitle(" 1");
//
Intent intent = new Intent(this,NextActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_CANCEL_CURRENT);
builder.setContentIntent(pendingIntent);
//
builder.setAutoCancel(true);
//
manager.notify(2, builder.build());
};
}
위 코드에서 알 수 있듯이 간단한 infalter로 보기를 채우지 않았다. 알림은 전역적이기 때문에 알림을 촉발할 때 앱이 닫혀서 XML 레이아웃 파일을 얻을 수 없기 때문에 여기는RemoteViews류를 빌렸다.builder.setSmallIcon(R.drawable.ic_launcher).setTicker.setContentTitle(제목 1),이 세 가지 방법은 적어도 하나를 사용해야만 표시할 수 있다.Notification Compat와 Notification의 차이점은 전자는 3.0 이후에 사용하고 후자는 3.0 이전에 사용한다.
Notification
, 3 :
smallIcon:setSmallIcon()
Title:setContentTitle()
Detail text:setContentText()
효과도: