2016-04-11 5 views
1

まず、私はAndroid App開発の初心者です。私は特定の日の時間表をユーザーに知らせるAndroidアプリを作ろうとしています。しかし、私は、その時間に次の講義についての通知を自動的に送信する機能を追加したいと考えています。私は、Android Development Webサイトで入手可能なドキュメントを使用して簡単な通知メッセージを作成しようとしましたが、コードは効果がないようです。私は似たような質問で言及されたいろいろな方法を試しましたが、何も効果がないようです。 私が間違っていることを教えてもらえるように、自分のコードを投稿しています。1日に複数の通知を異なる時間に追加する方法

Monday.java

package com.arc.sid.timetable; 

import android.app.AlarmManager; 
import android.app.PendingIntent; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ListView; 
import android.widget.Toast; 

import java.util.ArrayList; 
import java.util.Calendar; 


public class Monday extends AppCompatActivity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_monday); 

    ArrayList<SearchResults> searchResults = GetSearchResults(); 

    final ListView periods = (ListView) findViewById(R.id.mondayList); 
    periods.setAdapter(new CustomBaseAdapter(this, searchResults)); 

    periods.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
      Object period = periods.getItemAtPosition(position); 
      SearchResults fullObject = (SearchResults) period; 
      Toast.makeText(Monday.this, "Period : " + " " + fullObject.getPeriodName() + "\nLecturer : " 
        + " " + fullObject.getFaculty() + "\nTimings : " + " " + fullObject.getTiming(), Toast.LENGTH_LONG).show(); 
     } 
    }); 
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
Intent intent = new Intent(this, MondayNotificationService.class); 
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 
// set for 30 seconds later 
alarmMgr.set(AlarmManager.RTC, Calendar.getInstance().getTimeInMillis() + 30000, alarmIntent); 
} 

MondayNotificationService.java

package com.arc.sid.timetable; 

import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.support.v7.app.NotificationCompat; 

public class MondayNotificationService extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 

    Notification notification = new NotificationCompat.Builder(context) 
      .setContentTitle("Random title") 
      .setContentText("Random text") 
      .setSmallIcon(R.drawable.icon) 
      .setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, Monday.class), 0)) 
      .build(); 

    notificationManager.notify(0, notification); 
} 

}

activity_monday.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="10dp" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:id="@+id/activity_monday" 
tools:context="com.arc.sid.timetable.Monday"> 

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/mondayList" 
    /> 

</LinearLayout> 

答えて

1

私はあなたのコードをテストし、私は一定の時間後に通知を見ることができます。私はあなたがマニフェストファイルの受信機に言及していないかもしれないと思う。もしそうなら、以下を追加してください。

<receiver 
android:name=".MondayNotificationService"> 
</receiver> 
+0

ありがとう@Rick Sanchez。私はマニフェストで受信者の声明を追加するのを忘れていた –

+0

あなたは私の答えを受け入れるだろうか? –

-2

利用解析ライブラリ チェックするlinkあなたを助けることができます

+0

この情報はどのように役立ちますか? – Joe3112

関連する問題