我正在为我的大学项目创建一个android应用程序。我想包括一个通知板,这将发送通知给所有相同的应用程序,如果一个通知张贴。并且已登录的用户可以查看通知。通知将存储在MySql数据库中,其中包含一个表通知,通知有5个表:通知-编号通知-详细通知-时间通知-张贴日期。我到处搜索,但我找到的是Google Cloud Messing API或REST API来做这件事。但我不想用这些。我只想将张贴的通知存储到数据库中,如果有人登录,他/她会收到新通知张贴的通知,并能够查看它。我还没有完成Java代码,只是需要如何做的想法。如果有人能帮上忙的话请告诉我。谢谢你!!
My XML code: activity_notice.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:layout_width="250dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="RECENT NOTICES"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textColor="#ff0612"
android:textSize="30dp"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="50dp"
android:id="@+id/noticeText"
android:hint="Post Notice"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="42dp"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView" />
<ImageButton
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/sndnoticeBut"
android:src="@drawable/send1"
android:background="@null"
android:layout_alignTop="@+id/noticeText"
android:layout_toRightOf="@+id/noticeText"
android:layout_toEndOf="@+id/noticeText" />
</RelativeLayout>
Java code: Notice.java
import android.app.Activity;
import android.os.Bundle;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import static java.lang.System.currentTimeMillis;
public class Notice extends Activity
{
ImageButton notbut;
EditText nottxt;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notice);
notbut=(ImageButton)findViewById(R.id.sndnoticeBut);
nottxt=(EditText)findViewById(R.id.noticeText);
notbut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tittle = "You Have Received A Message";
String subject = "New Notice Posted";
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
String body = nottxt.getText().toString().trim();
NotificationManager notif = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notify = new Notification(R.drawable.noti, tittle, System.currentTimeMillis());
PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0);
notify.setLatestEventInfo(getApplicationContext(), subject, body,pending);
notif.notify(0, notify);
}
});
}
}发布于 2016-06-06 17:21:08
因此,只有一台设备和该设备上的一个应用程序。该应用程序有多个存储在sqlite数据库中的用户。每个用户都可以在应用程序中编写通知。当另一个用户登录时,应该向他/她显示书面通知。
您需要的是区分某个用户是否看到通知的能力。如果last_login列还不存在,我建议您扩展users表以添加该列。然后,每次用户登录时,使用该列获取在上次登录日期之后发布的通知。这应该会产生用户没有看到的通知。显示通知并将该用户的last_login列设置为最近日期,以便下次用户登录时不会返回旧通知。
https://stackoverflow.com/questions/37652042
复制相似问题