2016-07-14 77 views
0

我有一個應用程序,只顯示通知(創建NotificationManager),並顯示吐司,然後退出finish()(在onCreate()一切)。用例是當用戶運行我的應用程序時,會顯示一個通知,通過它可以實現某些操作。我是否需要一個僅顯示通知的活動?

我是否甚至需要針對此活動或者是否有更快的選擇?打開它需要一段時間,並且必須加載佈局,儘管用戶甚至不能看到佈局。

回答

1

可以使用Android:主題=「@安卓風格/ Theme.NoDisplay」 爲了使活動儘可能快的無負載佈局,它

1

您需要一個Context來創建該通知。您可以使用例如一個Service,Activity,IntentServiceBroadcastReceiver和更多。要創建Toast,您還需要Context,那麼您目前在哪裏創建ToastNotification

+0

目前我在'的onCreate(創建它們)'的主要活動,並得到與'getApplicationContext上下文()' 。 –

0

活動是不是強制性的。

一個例子

你可以有一個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(); 
       } 
      } 
     } 
    } 
} 
相關問題