我有一個應用程序,只顯示通知(創建NotificationManager),並顯示吐司,然後退出finish()
(在onCreate()
一切)。用例是當用戶運行我的應用程序時,會顯示一個通知,通過它可以實現某些操作。我是否需要一個僅顯示通知的活動?
我是否甚至需要針對此活動或者是否有更快的選擇?打開它需要一段時間,並且必須加載佈局,儘管用戶甚至不能看到佈局。
我有一個應用程序,只顯示通知(創建NotificationManager),並顯示吐司,然後退出finish()
(在onCreate()
一切)。用例是當用戶運行我的應用程序時,會顯示一個通知,通過它可以實現某些操作。我是否需要一個僅顯示通知的活動?
我是否甚至需要針對此活動或者是否有更快的選擇?打開它需要一段時間,並且必須加載佈局,儘管用戶甚至不能看到佈局。
可以使用Android:主題=「@安卓風格/ Theme.NoDisplay」 爲了使活動儘可能快的無負載佈局,它
您需要一個Context
來創建該通知。您可以使用例如一個Service
,Activity
,IntentService
或BroadcastReceiver
和更多。要創建Toast,您還需要Context
,那麼您目前在哪裏創建Toast
和Notification
?
活動是不是強制性的。
一個例子
你可以有一個BroadcastReceiver
,顯示敬酒消息例子。通過這種方式,您可以註冊BroadcastReceiver
以收聽您想要的事件(如傳入短信,啓動完成等),並在事件發生時顯示敬酒...
在下面的示例中,您將在以下示例中顯示Toast接收短信(無論用戶是否打開了您的應用)。
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest>
...
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<application>
....
<receiver android:name=".MyCustomBroadcastReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
</manifest>
MyCustomBroadcastReceiver.java
public class MyCustomBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent != null) {
String action = intent.getAction();
if(action != null) {
if(action.equals("android.provider.Telephony.SMS_RECEIVED")) {
Toast.makeText(context, "SMS Received", Toast.LENGTH_LONG).show();
}
}
}
}
}
目前我在'的onCreate(創建它們)'的主要活動,並得到與'getApplicationContext上下文()' 。 –