1

指定された時間 (午前 8 時など) に毎日通知を表示する Titanium Appcelerator を使用して、ネイティブ Android アプリを作成しています。app.js では、Android サービスが呼び出されます。

app.js

var intent = Ti.Android.createServiceIntent({
url : 'MyService.js'
});
intent.putExtra('interval', new Date().getTime());
Ti.Android.startService(intent);

MyService.js

var activity = Ti.Android.currentActivity();
var intent = Ti.Android.createIntent({
action : Ti.Android.ACTION_MAIN,
url : 'app.js',
flags : Ti.Android.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Ti.Android.FLAG_ACTIVITY_SINGLE_TOP
});
intent.addCategory(Titanium.Android.CATEGORY_LAUNCHER);
var pending = Ti.Android.createPendingIntent({
activity : activity,
intent : intent,
type : Ti.Android.PENDING_INTENT_FOR_ACTIVITY,
flags : Ti.Android.FLAG_ACTIVITY_NO_HISTORY
});
var notification = Ti.Android.createNotification({
contentIntent : pending,
contentTitle : 'Main Notification',
contentText : 'Whats Today',
tickerText : 'This is main notification',
when : "08:00",
icon : Ti.App.Android.R.drawable.appicon,
flags : Titanium.Android.ACTION_DEFAULT | Titanium.Android.FLAG_AUTO_CANCEL | Titanium.Android.FLAG_SHOW_LIGHTS
});
Ti.Android.NotificationManager.notify(1, notification);
var service = Ti.Android.currentService;
var serviceIntent = service.getIntent();

そして私のtiapp.xmlは

<android xmlns:android="http://schemas.android.com/apk/res/android">
   <!-- the activities tag must be added if you want to use the url property to launch your app -->
   <activities>
       <activity url="app.js">
           <intent-filter>
               <action android:name="android.intent.action.VIEW"/>
               <category android:name="android.intent.category.DEFAULT"/>
               <category android:name="android.intent.category.BROWSABLE"/>
           </intent-filter>
       </activity>
   </activities>
   <!-- the services tag must be added so that our service will run -->
   <services>
       <service type="interval" url="MyService.js"/>
   </services>
</android>

しかし、これはアプリケーションの開始時に通知を作成し、毎日午前 8 時に通知を作成できません。可能な回避策はありますか?

4

1 に答える 1

1

使用する必要があります Bencoding AlarmManager: https://github.com/benbahrenburg/benCoding.AlarmManager

このモジュールは、必要なものを提供します。とても簡単です。通知またはサービスをスケジュールするときに「毎日」repeatに設定するだけです。

完全に機能するコードについては、https://gist.github.com/itsamiths/6248106を参照してください。

于 2013-08-15T08:32:40.860 に答える